@xano/developer-mcp 1.0.59 → 1.0.61

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.
Files changed (34) hide show
  1. package/README.md +8 -1
  2. package/dist/cli_docs/index.js +16 -1
  3. package/dist/cli_docs/topics/auth.d.ts +2 -0
  4. package/dist/cli_docs/topics/auth.js +62 -0
  5. package/dist/cli_docs/topics/branch.js +1 -1
  6. package/dist/cli_docs/topics/function.js +9 -3
  7. package/dist/cli_docs/topics/integration.js +6 -1
  8. package/dist/cli_docs/topics/platform.d.ts +2 -0
  9. package/dist/cli_docs/topics/platform.js +41 -0
  10. package/dist/cli_docs/topics/profile.js +66 -31
  11. package/dist/cli_docs/topics/release.d.ts +2 -0
  12. package/dist/cli_docs/topics/release.js +215 -0
  13. package/dist/cli_docs/topics/run.js +1 -1
  14. package/dist/cli_docs/topics/start.js +20 -13
  15. package/dist/cli_docs/topics/static_host.js +1 -1
  16. package/dist/cli_docs/topics/tenant.d.ts +2 -0
  17. package/dist/cli_docs/topics/tenant.js +472 -0
  18. package/dist/cli_docs/topics/unit_test.d.ts +2 -0
  19. package/dist/cli_docs/topics/unit_test.js +88 -0
  20. package/dist/cli_docs/topics/update.d.ts +2 -0
  21. package/dist/cli_docs/topics/update.js +29 -0
  22. package/dist/cli_docs/topics/workflow_test.d.ts +2 -0
  23. package/dist/cli_docs/topics/workflow_test.js +119 -0
  24. package/dist/cli_docs/topics/workspace.js +56 -9
  25. package/dist/xanoscript_docs/README.md +4 -1
  26. package/dist/xanoscript_docs/branch.md +10 -0
  27. package/dist/xanoscript_docs/debugging.md +10 -0
  28. package/dist/xanoscript_docs/functions.md +1 -1
  29. package/dist/xanoscript_docs/middleware.md +11 -0
  30. package/dist/xanoscript_docs/realtime.md +10 -0
  31. package/dist/xanoscript_docs/schema.md +10 -0
  32. package/dist/xanoscript_docs/survival.md +1 -1
  33. package/dist/xanoscript_docs/workspace.md +10 -0
  34. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import type { TopicDoc } from "../types.js";
2
+ export declare const updateDoc: TopicDoc;
@@ -0,0 +1,29 @@
1
+ export const updateDoc = {
2
+ topic: "update",
3
+ title: "Xano CLI - Update",
4
+ description: `The update command lets you check for and install CLI updates.`,
5
+ ai_hints: `**When to suggest updating:**
6
+ - User encounters unexpected behavior that might be fixed in a newer version
7
+ - User asks about new features
8
+ - Before troubleshooting CLI issues
9
+
10
+ **Update uses npm** - runs \`npm install -g @xano/cli\` under the hood.
11
+ **Beta channel** - use \`--beta\` to get pre-release versions for testing new features.`,
12
+ related_topics: ["start"],
13
+ commands: [
14
+ {
15
+ name: "update",
16
+ description: "Update the Xano CLI to the latest version",
17
+ usage: "xano update [options]",
18
+ flags: [
19
+ { name: "check", type: "boolean", required: false, description: "Check for updates without installing" },
20
+ { name: "beta", type: "boolean", required: false, description: "Update to the latest beta version" }
21
+ ],
22
+ examples: [
23
+ "xano update",
24
+ "xano update --check",
25
+ "xano update --beta"
26
+ ]
27
+ }
28
+ ]
29
+ };
@@ -0,0 +1,2 @@
1
+ import type { TopicDoc } from "../types.js";
2
+ export declare const workflowTestDoc: TopicDoc;
@@ -0,0 +1,119 @@
1
+ export const workflowTestDoc = {
2
+ topic: "workflow_test",
3
+ title: "Xano CLI - Workflow Test Management",
4
+ description: `Workflow test commands let you run end-to-end tests that exercise multi-step workflows. Unlike unit tests which test individual functions, workflow tests validate complete request flows.
5
+
6
+ ## Key Concepts
7
+
8
+ - **Workflow tests** are more comprehensive than unit tests, testing full request flows.
9
+ - Tests are created and configured in the Xano dashboard; the CLI is for listing, viewing, and running them.
10
+ - The \`get\` command supports \`xs\` output format for viewing test XanoScript.
11
+ - Use \`run_all\` in CI/CD pipelines for automated end-to-end validation.`,
12
+ ai_hints: `**Key concepts:**
13
+ - Workflow tests are more comprehensive than unit tests, testing full request flows
14
+ - Tests are created in the Xano dashboard; the CLI is for running them
15
+ - \`workflow_test:get\` supports \`xs\` output format for viewing test XanoScript
16
+ - Use \`workflow_test:run_all\` in CI/CD pipelines for automated testing
17
+
18
+ **CI/CD integration:**
19
+ - Use \`workflow_test:run_all -o json\` for machine-readable output
20
+ - Combine with \`unit_test:run_all\` for full test coverage
21
+ - Filter by branch with \`--branch\` to test specific branches
22
+
23
+ **Viewing test details:**
24
+ - Use \`workflow_test:get <id> -o xs\` to view the test XanoScript
25
+ - Use \`--include-draft\` to view draft versions of tests`,
26
+ related_topics: ["unit_test", "workspace", "branch"],
27
+ commands: [
28
+ {
29
+ name: "workflow_test:list",
30
+ description: "List workflow tests in the workspace",
31
+ usage: "xano workflow_test:list [options]",
32
+ flags: [
33
+ { name: "branch", short: "b", type: "string", required: false, description: "Branch to list tests from" },
34
+ { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID" },
35
+ { name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
36
+ ],
37
+ examples: [
38
+ "xano workflow_test:list",
39
+ "xano workflow_test:list --branch dev",
40
+ "xano workflow_test:list -o json"
41
+ ]
42
+ },
43
+ {
44
+ name: "workflow_test:get",
45
+ description: "Get details for a specific workflow test",
46
+ usage: "xano workflow_test:get <workflow_test_id> [options]",
47
+ args: [
48
+ { name: "workflow_test_id", required: true, description: "ID of the workflow test to retrieve" }
49
+ ],
50
+ flags: [
51
+ { name: "include-draft", type: "boolean", required: false, description: "Include draft version if available" },
52
+ { name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: xs or json" },
53
+ { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID" }
54
+ ],
55
+ examples: [
56
+ "xano workflow_test:get 456",
57
+ "xano workflow_test:get 456 -o xs",
58
+ "xano workflow_test:get 456 --include-draft -o json"
59
+ ]
60
+ },
61
+ {
62
+ name: "workflow_test:run",
63
+ description: "Run a single workflow test by ID",
64
+ usage: "xano workflow_test:run <workflow_test_id> [options]",
65
+ args: [
66
+ { name: "workflow_test_id", required: true, description: "ID of the workflow test to run" }
67
+ ],
68
+ flags: [
69
+ { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID" },
70
+ { name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
71
+ ],
72
+ examples: [
73
+ "xano workflow_test:run 456",
74
+ "xano workflow_test:run 456 -o json"
75
+ ]
76
+ },
77
+ {
78
+ name: "workflow_test:run_all",
79
+ description: "Run all workflow tests in the workspace",
80
+ usage: "xano workflow_test:run_all [options]",
81
+ flags: [
82
+ { name: "branch", short: "b", type: "string", required: false, description: "Branch to run tests against" },
83
+ { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID" },
84
+ { name: "output", short: "o", type: "string", required: false, default: "summary", description: "Output format: summary or json" }
85
+ ],
86
+ examples: [
87
+ "xano workflow_test:run_all",
88
+ "xano workflow_test:run_all --branch dev -o json"
89
+ ]
90
+ },
91
+ {
92
+ name: "workflow_test:delete",
93
+ description: "Delete a workflow test by ID",
94
+ usage: "xano workflow_test:delete <workflow_test_id> [options]",
95
+ args: [
96
+ { name: "workflow_test_id", required: true, description: "ID of the workflow test to delete" }
97
+ ],
98
+ flags: [
99
+ { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID" }
100
+ ],
101
+ examples: [
102
+ "xano workflow_test:delete 456"
103
+ ]
104
+ }
105
+ ],
106
+ workflows: [
107
+ {
108
+ name: "Validate Workflows Before Deploy",
109
+ description: "Run all workflow tests to validate before deployment",
110
+ steps: [
111
+ "List available tests: `xano workflow_test:list`",
112
+ "Run all tests: `xano workflow_test:run_all`",
113
+ "Check results for PASS/FAIL status"
114
+ ],
115
+ example: `xano workflow_test:list
116
+ xano workflow_test:run_all -o json`
117
+ }
118
+ ]
119
+ };
@@ -78,8 +78,20 @@ After \`workspace:pull\`, files are organized using snake_case naming:
78
78
 
79
79
  **Branch handling:**
80
80
  - Use \`-b\` flag or set branch in profile
81
- - Pull from one branch, push to another is supported`,
82
- related_topics: ["start", "function", "integration"],
81
+ - Pull from one branch, push to another is supported
82
+
83
+ **Push modes:**
84
+ - Default (partial): Only pushes changed files
85
+ - \`--sync\`: Full push of all files
86
+ - \`--sync --delete\`: Full push AND removes remote objects not in local
87
+ - \`--dry-run\`: Preview what would change without applying
88
+ - \`--include/-i\` and \`--exclude/-e\`: Glob patterns for selective push
89
+
90
+ **Git integration:**
91
+ - \`workspace:git:pull\` pulls XanoScript directly from GitHub/GitLab repos
92
+ - Supports private repos with \`--token\` flag
93
+ - Can pull from a specific subdirectory with \`--path\``,
94
+ related_topics: ["start", "branch", "function", "release", "integration"],
83
95
  commands: [
84
96
  {
85
97
  name: "workspace:list",
@@ -162,37 +174,72 @@ After \`workspace:pull\`, files are organized using snake_case naming:
162
174
  },
163
175
  {
164
176
  name: "workspace:pull",
165
- description: "Download workspace code to local directory",
177
+ description: "Download workspace code to local directory. Splits multidoc into individual .xs files organized by type.",
166
178
  usage: "xano workspace:pull <directory> [options]",
167
179
  args: [
168
180
  { name: "directory", required: true, description: "Local directory to save files" }
169
181
  ],
170
182
  flags: [
171
183
  { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile default if not set)" },
172
- { name: "branch", short: "b", type: "string", required: false, description: "Branch ID to pull from" },
184
+ { name: "branch", short: "b", type: "string", required: false, description: "Branch label to pull from" },
173
185
  { name: "env", type: "boolean", required: false, description: "Include environment variables" },
186
+ { name: "draft", type: "boolean", required: false, description: "Include draft versions of functions" },
174
187
  { name: "records", type: "boolean", required: false, description: "Include table records" }
175
188
  ],
176
189
  examples: [
177
190
  "xano workspace:pull ./my-app",
178
- "xano workspace:pull ./staging-code -b 2",
179
- "xano workspace:pull ./backup --env --records"
191
+ "xano workspace:pull ./staging-code -b dev",
192
+ "xano workspace:pull ./backup --env --records --draft"
180
193
  ]
181
194
  },
182
195
  {
183
196
  name: "workspace:push",
184
- description: "Upload local XanoScript files to workspace",
197
+ description: "Upload local XanoScript files to workspace. By default only pushes changed files (partial push). Use --sync for a full push.",
185
198
  usage: "xano workspace:push <directory> [options]",
186
199
  args: [
187
200
  { name: "directory", required: true, description: "Local directory containing .xs files" }
188
201
  ],
189
202
  flags: [
190
203
  { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile default if not set)" },
191
- { name: "branch", short: "b", type: "string", required: false, description: "Branch ID to push to" }
204
+ { name: "branch", short: "b", type: "string", required: false, description: "Branch label to push to" },
205
+ { name: "sync", type: "boolean", required: false, description: "Full push (default is partial/changed-only)" },
206
+ { name: "delete", type: "boolean", required: false, description: "Delete remote objects not in local files (requires --sync)" },
207
+ { name: "dry-run", type: "boolean", required: false, description: "Preview changes without applying" },
208
+ { name: "force", type: "boolean", required: false, description: "Skip confirmation prompt" },
209
+ { name: "env", type: "boolean", required: false, description: "Include environment variables" },
210
+ { name: "records", type: "boolean", required: false, description: "Include table records" },
211
+ { name: "truncate", type: "boolean", required: false, description: "Truncate tables before importing records" },
212
+ { name: "transaction", type: "boolean", required: false, default: "true", description: "Wrap push in database transaction (--no-transaction to disable)" },
213
+ { name: "guids", type: "boolean", required: false, default: "true", description: "Write GUIDs back to local files after push (--no-guids to disable)" },
214
+ { name: "include", short: "i", type: "string", required: false, description: "Glob pattern to include specific files (repeatable)" },
215
+ { name: "exclude", short: "e", type: "string", required: false, description: "Glob pattern to exclude specific files (repeatable)" }
192
216
  ],
193
217
  examples: [
194
218
  "xano workspace:push ./my-app",
195
- "xano workspace:push ./my-app -b 2"
219
+ "xano workspace:push ./my-app -b dev",
220
+ "xano workspace:push ./my-app --dry-run",
221
+ "xano workspace:push ./my-app --sync --delete --force",
222
+ "xano workspace:push ./my-app -i 'api/**' -i 'function/**'",
223
+ "xano workspace:push ./my-app -e 'table/**' --records --truncate"
224
+ ]
225
+ },
226
+ {
227
+ name: "workspace:git:pull",
228
+ description: "Pull XanoScript files directly from a git repository (GitHub, GitLab, etc.)",
229
+ usage: "xano workspace:git:pull <directory> --repo <url> [options]",
230
+ args: [
231
+ { name: "directory", required: true, description: "Local directory to save files" }
232
+ ],
233
+ flags: [
234
+ { name: "repo", short: "r", type: "string", required: true, description: "Git repository URL (HTTPS or SSH)" },
235
+ { name: "branch", short: "b", type: "string", required: false, description: "Git branch, tag, or ref to pull from" },
236
+ { name: "path", type: "string", required: false, description: "Subdirectory within the repo to pull from" },
237
+ { name: "token", short: "t", type: "string", required: false, description: "Personal access token for private repos" }
238
+ ],
239
+ examples: [
240
+ "xano workspace:git:pull ./code -r https://github.com/org/repo.git",
241
+ "xano workspace:git:pull ./code -r https://github.com/org/repo.git -b main --path src/xano",
242
+ "xano workspace:git:pull ./code -r https://github.com/org/private-repo.git -t ghp_token123"
196
243
  ]
197
244
  }
198
245
  ],
@@ -193,6 +193,9 @@ Use `xanoscript_docs({ tier: "survival" })` or `xanoscript_docs({ tier: "working
193
193
  | ------------ | ---------------------------------------------------- | ------------ |
194
194
  | `essentials` | Common patterns, quick examples, mistakes to avoid | Patterns, Common Mistakes |
195
195
  | `syntax` | Expressions, operators, filters, system variables | Filters, Error Handling |
196
+ | `syntax/string-filters` | String manipulation filters | Case, Trim, Split, Replace |
197
+ | `syntax/array-filters` | Array manipulation filters | Map, Filter, Sort, Group |
198
+ | `syntax/functions` | Built-in functions | Math, Date, Crypto, JSON |
196
199
  | `types` | Data types, validation, input blocks | Validation Filters, Input Blocks |
197
200
  | `functions` | Reusable function stacks, async, loops | Loops, Async Patterns |
198
201
  | `schema` | Runtime schema parsing and validation | parse.object, parse.array |
@@ -227,7 +230,7 @@ Use `xanoscript_docs({ tier: "survival" })` or `xanoscript_docs({ tier: "working
227
230
 
228
231
  | Topic | Description | Sub-topics |
229
232
  | -------------- | ------------------------------------------------- | ---------- |
230
- | `integrations` | Cloud storage, Redis, security, and external APIs | cloud-storage, search, redis, external-apis, utilities |
233
+ | `integrations` | Cloud storage, Redis, security, and external APIs | integrations/cloud-storage, integrations/search, integrations/redis, integrations/external-apis, integrations/utilities |
231
234
 
232
235
  ### Configuration
233
236
 
@@ -236,3 +236,13 @@ project/
236
236
  1. **Use descriptive colors** - Green for production, blue for development, yellow for staging
237
237
  2. **Limit production history** - Excessive history impacts performance and storage
238
238
  3. **Apply security middleware in production** - Rate limiting, auth checks, audit logging
239
+
240
+ ---
241
+
242
+ ## Related Topics
243
+
244
+ | Topic | Description |
245
+ |-------|-------------|
246
+ | `workspace` | Workspace-level configuration |
247
+ | `middleware` | Request/response interceptors |
248
+ | `security` | Authentication and rate limiting |
@@ -77,3 +77,13 @@ View past request executions in the Xano dashboard:
77
77
 
78
78
  1. **Remove debug.stop in production** - Causes execution to halt
79
79
  2. **Don't log sensitive data** - Passwords, tokens, PII
80
+
81
+ ---
82
+
83
+ ## Related Topics
84
+
85
+ | Topic | Description |
86
+ |-------|-------------|
87
+ | `performance` | Performance profiling and optimization |
88
+ | `unit-testing` | Unit testing functions |
89
+ | `workflow-tests` | End-to-end workflow testing |
@@ -472,4 +472,4 @@ Explore more with `xanoscript_docs({ topic: "<topic>" })`:
472
472
  | `syntax` | Expressions, operators, and control flow |
473
473
  | `essentials` | Common patterns and examples |
474
474
  | `database` | Database operations in function stacks |
475
- | `testing` | Unit testing functions |
475
+ | `unit-testing` | Unit testing functions |
@@ -304,3 +304,14 @@ branch "production" {
304
304
  1. **Keep middleware focused** - Each middleware should do one thing well
305
305
  2. **Use appropriate exception policies** - Critical for security, silent for optional enrichment
306
306
  3. **Consider performance** - Middleware runs on every request; log even silent failures
307
+
308
+ ---
309
+
310
+ ## Related Topics
311
+
312
+ | Topic | Description |
313
+ |-------|-------------|
314
+ | `branch` | Branch-level middleware configuration |
315
+ | `security` | Authentication and authorization patterns |
316
+ | `apis` | API endpoint request/response lifecycle |
317
+ | `performance` | Performance optimization strategies |
@@ -295,3 +295,13 @@ Clients subscribe to channels client-side. Server controls what events to send.
295
295
  1. **Use channel namespacing** - `type:id` format for clarity
296
296
  2. **Keep payloads small** - Send IDs, let client fetch details
297
297
  3. **Validate before broadcast** - Don't trust client event data
298
+
299
+ ---
300
+
301
+ ## Related Topics
302
+
303
+ | Topic | Description |
304
+ |-------|-------------|
305
+ | `workspace` | Realtime configuration settings |
306
+ | `security` | Authorization patterns for channels |
307
+ | `frontend` | Client-side realtime integration |
@@ -288,3 +288,13 @@ try_catch {
288
288
  1. **Define schemas upfront** - Use input blocks when structure is known
289
289
  2. **Use schema.parse for dynamic data** - External APIs, user-generated content
290
290
  3. **Validate at boundaries** - Parse external input, trust internal data; provide clear error messages
291
+
292
+ ---
293
+
294
+ ## Related Topics
295
+
296
+ | Topic | Description |
297
+ |-------|-------------|
298
+ | `types` | Data types and input validation |
299
+ | `integrations/external-apis` | Parsing external API responses |
300
+ | `syntax` | Expressions and filters |
@@ -158,4 +158,4 @@ input {
158
158
 
159
159
  ### Available Topics
160
160
 
161
- essentials, syntax, types, database, functions, apis, tables, tasks, triggers, agents, tools, mcp-servers, security, performance, debugging, unit-testing, workflow-tests, middleware, addons, realtime, streaming, schema, integrations, workspace, branch, run, frontend
161
+ survival, working, readme, essentials, syntax, syntax/string-filters, syntax/array-filters, syntax/functions, types, database, functions, apis, tables, tasks, triggers, agents, tools, mcp-servers, security, performance, debugging, unit-testing, workflow-tests, middleware, addons, realtime, streaming, schema, integrations, integrations/cloud-storage, integrations/search, integrations/redis, integrations/external-apis, integrations/utilities, workspace, branch, run, frontend
@@ -207,3 +207,13 @@ These variables are automatically available without configuration:
207
207
  1. **Never commit secrets** - Use environment variables for API keys and credentials
208
208
  2. **Use descriptive names** - Environment variable names should be self-documenting
209
209
  3. **Enable performance tracking** - Helps identify bottlenecks in production
210
+
211
+ ---
212
+
213
+ ## Related Topics
214
+
215
+ | Topic | Description |
216
+ |-------|-------------|
217
+ | `branch` | Branch-level configuration |
218
+ | `realtime` | Realtime channel configuration |
219
+ | `security` | Environment variable security practices |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xano/developer-mcp",
3
- "version": "1.0.59",
3
+ "version": "1.0.61",
4
4
  "description": "MCP server and library for Xano development - XanoScript validation, Meta API, Run API, and CLI documentation",
5
5
  "type": "module",
6
6
  "main": "dist/lib.js",