@cloudgrid-io/mcp 0.19.2 → 0.19.4
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 +25 -25
- package/package.json +1 -1
- package/src/auth.js +1 -1
- package/src/cli-shim.mjs +1 -1
- package/src/corpus/cli-reference.md +19 -19
- package/src/corpus/cookbook.md +10 -10
- package/src/corpus/install-for-agents.md +5 -5
- package/src/corpus/install.md +5 -5
- package/src/corpus/rules/publish-fallbacks.md +2 -2
- package/src/corpus/skill-brain.md +6 -6
- package/src/corpus/skill-claim.md +1 -1
- package/src/corpus/skill-feedback.md +6 -6
- package/src/corpus/skill-init.md +8 -8
- package/src/corpus/skill-login.md +3 -3
- package/src/corpus/skill-logs.md +5 -5
- package/src/corpus/skill-plug.md +9 -9
- package/src/corpus/skill-share.md +6 -6
- package/src/corpus/skills-readme.md +2 -2
- package/src/corpus/troubleshooting/deploy-errors.md +1 -1
- package/src/corpus/usage.md +1 -1
- package/src/corpus/workflows/app-with-data.md +1 -1
- package/src/tools.js +9 -6
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ It ships in two editions from one codebase:
|
|
|
9
9
|
- **Web (hosted HTTP)** — a light, CLI-free toolset (drop, claim, login,
|
|
10
10
|
visibility) for web clients like claude.ai. See [REMOTE.md](REMOTE.md).
|
|
11
11
|
|
|
12
|
-
The local edition wraps the `
|
|
12
|
+
The local edition wraps the `grid` CLI for authenticated operations (the CLI
|
|
13
13
|
handles auth, org context, and error formatting) and calls the API directly for the
|
|
14
14
|
drop, claim, and login tools.
|
|
15
15
|
|
|
@@ -33,10 +33,10 @@ Install and log in to the CLI:
|
|
|
33
33
|
|
|
34
34
|
```
|
|
35
35
|
npm install -g @cloudgrid-io/cli
|
|
36
|
-
|
|
36
|
+
grid login
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
The server reads no credentials directly. It runs `
|
|
39
|
+
The server reads no credentials directly. It runs `grid`, which uses its own
|
|
40
40
|
stored credentials at `~/.cloudgrid/credentials`.
|
|
41
41
|
|
|
42
42
|
## Run
|
|
@@ -79,28 +79,28 @@ also work in the web edition where no CLI exists. `grid_login` writes the same
|
|
|
79
79
|
|
|
80
80
|
| Tool | Wraps | Notes |
|
|
81
81
|
|---|---|---|
|
|
82
|
-
| `grid_init` | `
|
|
83
|
-
| `grid_logs` | `
|
|
84
|
-
| `grid_share` | `
|
|
85
|
-
| `grid_feedback` | `
|
|
86
|
-
| `grid_whoami` | `
|
|
87
|
-
| `grid_use` | `
|
|
88
|
-
| `grid_logout` | `
|
|
89
|
-
| `grid_status` | `
|
|
90
|
-
| `grid_info` | `
|
|
91
|
-
| `grid_get` | `
|
|
92
|
-
| `grid_describe_grid` | `
|
|
93
|
-
| `grid_pickup` | `
|
|
94
|
-
| `grid_rename` | `
|
|
95
|
-
| `grid_unplug` | `
|
|
96
|
-
| `grid_delete` | `
|
|
97
|
-
| `grid_rollback` | `
|
|
98
|
-
| `grid_versions` | `
|
|
99
|
-
| `grid_env` | `
|
|
100
|
-
| `grid_secrets` | `
|
|
101
|
-
| `grid_scaffold` | `
|
|
102
|
-
| `grid_doctor` | `
|
|
103
|
-
| `grid_open` | `
|
|
82
|
+
| `grid_init` | `grid init` | Register an app or agent; optionally seed a web service. |
|
|
83
|
+
| `grid_logs` | `grid logs` | Snapshot of recent logs. Does not stream. Read-only. |
|
|
84
|
+
| `grid_share` | `grid visibility set` | Set visibility, default link. |
|
|
85
|
+
| `grid_feedback` | `grid feedback list` | Read the org feedback feed. Read-only. |
|
|
86
|
+
| `grid_whoami` | `grid whoami` | Show the signed-in user and active org. Read-only. |
|
|
87
|
+
| `grid_use` | `grid use` | Switch the active org. |
|
|
88
|
+
| `grid_logout` | `grid logout` | Sign out and clear local credentials. Destructive. |
|
|
89
|
+
| `grid_status` | `grid status` | Org dashboard or entity detail. Read-only. |
|
|
90
|
+
| `grid_info` | `grid info` | Entity metadata. Read-only. |
|
|
91
|
+
| `grid_get` | `grid get grids\|entities\|spaces` | List grids, entities, or spaces. Read-only. |
|
|
92
|
+
| `grid_describe_grid` | `grid describe grid <slug>` | Grid detail. Read-only. |
|
|
93
|
+
| `grid_pickup` | `grid pickup <name>` | Download an entity's source and bind the folder. |
|
|
94
|
+
| `grid_rename` | `grid rename` | Rename an entity's display name. |
|
|
95
|
+
| `grid_unplug` | `grid unplug` | Take an entity off the grid. Destructive; requires confirm. |
|
|
96
|
+
| `grid_delete` | `grid delete entity` | Archive an inspiration. Destructive; requires confirm. |
|
|
97
|
+
| `grid_rollback` | `grid rollback` | Rollback to a previous version. |
|
|
98
|
+
| `grid_versions` | `grid versions` | List published versions. Read-only. |
|
|
99
|
+
| `grid_env` | `grid env` | Get, set, or list environment variables. |
|
|
100
|
+
| `grid_secrets` | `grid secrets` | Set or list secret names. Never returns secret values. |
|
|
101
|
+
| `grid_scaffold` | `grid scaffold` | Generate starter files. |
|
|
102
|
+
| `grid_doctor` | `grid doctor` | Run local diagnostics. Read-only. |
|
|
103
|
+
| `grid_open` | `grid open --print` | Return the public URL. Does not open a browser. Read-only. |
|
|
104
104
|
|
|
105
105
|
`grid_share` and `grid_visibility` overlap on purpose: `grid_share`
|
|
106
106
|
wraps the CLI and defaults to `link`; `grid_visibility` is direct API, takes an
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudgrid-io/mcp",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.4",
|
|
4
4
|
"description": "MCP server for CloudGrid. Three editions: a local stdio server (full toolset), a hosted web server (light, CLI-free toolset), and a public docs server (search_cloudgrid_documentation) over MCP Streamable HTTP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/auth.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// CLI-free sign-in against CloudGrid's existing OAuth backend.
|
|
2
2
|
//
|
|
3
|
-
// The flow is the same one `
|
|
3
|
+
// The flow is the same one `grid login` uses, driven without the CLI:
|
|
4
4
|
// 1. pick a UUID `code`
|
|
5
5
|
// 2. user opens GET /auth/login?code=<code> and signs in with Google
|
|
6
6
|
// 3. poll GET /auth/status?code=<code> until it returns the signed JWT (once)
|
package/src/cli-shim.mjs
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
// It also strips ELECTRON_RUN_AS_NODE from the environment: the variable has
|
|
20
20
|
// done its job once this file is executing, and letting it leak further would
|
|
21
21
|
// break anything Electron-based the CLI spawns later (e.g. a browser opened
|
|
22
|
-
// for `
|
|
22
|
+
// for `grid login` would silently boot as a headless Node process).
|
|
23
23
|
|
|
24
24
|
import { pathToFileURL } from "node:url";
|
|
25
25
|
|
|
@@ -42,39 +42,39 @@ brew install cloudgrid-io/tap/cloudgrid
|
|
|
42
42
|
npm install -g @cloudgrid-io/cli
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
**Manual** — download the latest from [Releases](https://github.com/cloudgrid-io/cli/releases), extract, and put `
|
|
45
|
+
**Manual** — download the latest from [Releases](https://github.com/cloudgrid-io/cli/releases), extract, and put `grid` on your `$PATH`.
|
|
46
46
|
|
|
47
|
-
Verify: `
|
|
47
|
+
Verify: `grid --version` and `grid doctor`.
|
|
48
48
|
|
|
49
49
|
## Quickstart
|
|
50
50
|
|
|
51
51
|
```
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
grid login # Google OAuth in the browser
|
|
53
|
+
grid whoami # confirm user + active org
|
|
54
|
+
grid plug # build + deploy the current directory, prints the live URL
|
|
55
|
+
grid open # open it in the browser
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
No account needed to try a one-off share: `
|
|
58
|
+
No account needed to try a one-off share: `grid plug ./index.html` drops a public link.
|
|
59
59
|
|
|
60
60
|
## Examples
|
|
61
61
|
|
|
62
62
|
```
|
|
63
63
|
# Scaffold and deploy a Node app
|
|
64
|
-
|
|
65
|
-
cd my-api &&
|
|
64
|
+
grid init app my-api --type node
|
|
65
|
+
cd my-api && grid plug
|
|
66
66
|
|
|
67
67
|
# Deploy the current directory and tail its logs
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
grid plug
|
|
69
|
+
grid logs --since 10m
|
|
70
70
|
|
|
71
71
|
# Make a deploy public, then read feedback
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
grid visibility set my-api link
|
|
73
|
+
grid feedback
|
|
74
74
|
|
|
75
75
|
# Switch org, list what's on the grid
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
grid use atomic
|
|
77
|
+
grid grid
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## Commands
|
|
@@ -122,7 +122,7 @@ Common per-command:
|
|
|
122
122
|
npm update -g @cloudgrid-io/cli # npm
|
|
123
123
|
brew upgrade cloudgrid # homebrew
|
|
124
124
|
```
|
|
125
|
-
`
|
|
125
|
+
`grid doctor` warns when a newer version is available.
|
|
126
126
|
|
|
127
127
|
## Uninstall
|
|
128
128
|
|
|
@@ -134,9 +134,9 @@ rm -rf ~/.cloudgrid # remove stored credentials + config
|
|
|
134
134
|
|
|
135
135
|
## Troubleshooting
|
|
136
136
|
|
|
137
|
-
- **`
|
|
138
|
-
- **Auth errors / 401** — `
|
|
139
|
-
- **Deploy fails** — run `
|
|
137
|
+
- **`grid: command not found`** — ensure the npm global bin (or Homebrew bin) is on `$PATH`; re-run the installer.
|
|
138
|
+
- **Auth errors / 401** — `grid login` again; check `grid whoami` shows the expected org, switch with `grid use <org>`.
|
|
139
|
+
- **Deploy fails** — run `grid doctor`; check `grid logs` and `grid status <name>` for the trace.
|
|
140
140
|
|
|
141
141
|
## Support
|
|
142
142
|
|
package/src/corpus/cookbook.md
CHANGED
|
@@ -9,7 +9,7 @@ The CLI is installed and you are logged in:
|
|
|
9
9
|
|
|
10
10
|
```
|
|
11
11
|
npm install -g @cloudgrid-io/cli
|
|
12
|
-
|
|
12
|
+
grid login
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## The build-and-ship loop
|
|
@@ -23,27 +23,27 @@ init -> plug -> logs -> share -> feedback
|
|
|
23
23
|
Register a new app and seed a static web service:
|
|
24
24
|
|
|
25
25
|
```
|
|
26
|
-
|
|
26
|
+
grid init app my-thing --type static
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
`--type` accepts `node`, `nextjs`, `python`, or `static`. For an agent, use
|
|
30
|
-
`
|
|
30
|
+
`grid init agent my-thing`.
|
|
31
31
|
|
|
32
32
|
### 2. Deploy
|
|
33
33
|
|
|
34
34
|
From the project directory, deploy it:
|
|
35
35
|
|
|
36
36
|
```
|
|
37
|
-
|
|
37
|
+
grid plug
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
`
|
|
40
|
+
`grid plug` also takes a path or a URL. It builds and deploys, then prints the
|
|
41
41
|
live URL. This usually takes about 30 seconds.
|
|
42
42
|
|
|
43
43
|
### 3. Watch the logs
|
|
44
44
|
|
|
45
45
|
```
|
|
46
|
-
|
|
46
|
+
grid logs my-thing --follow
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
Drop `--follow` for a one-time tail. `--since 5m` limits how far back to read.
|
|
@@ -53,13 +53,13 @@ Drop `--follow` for a one-time tail. `--since 5m` limits how far back to read.
|
|
|
53
53
|
Make the entity reachable by anyone with the link. The command prints the URL:
|
|
54
54
|
|
|
55
55
|
```
|
|
56
|
-
|
|
56
|
+
grid visibility set my-thing link
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
### 5. Read feedback
|
|
60
60
|
|
|
61
61
|
```
|
|
62
|
-
|
|
62
|
+
grid feedback list
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
## Share an artifact with no account
|
|
@@ -98,10 +98,10 @@ the drop's expiry. Editing an archived or expired drop returns 409
|
|
|
98
98
|
|
|
99
99
|
- **Ship an existing directory:** `plug`
|
|
100
100
|
- **Deploy a URL as an inspiration:** `plug https://example.com`
|
|
101
|
-
- **Refresh discovery metadata after a change:** `
|
|
101
|
+
- **Refresh discovery metadata after a change:** `grid brain refresh my-thing --wait`
|
|
102
102
|
|
|
103
103
|
## Notes
|
|
104
104
|
|
|
105
105
|
- Every command uses the active org and linked entity when you omit the name. Run
|
|
106
|
-
`
|
|
106
|
+
`grid whoami` to see the active context.
|
|
107
107
|
- These skills wrap the CLI. Anything the CLI can do, a skill can drive.
|
|
@@ -5,10 +5,10 @@ order. Stop and ask the user only where a step says to.
|
|
|
5
5
|
|
|
6
6
|
## 1. Ensure the CLI is present
|
|
7
7
|
|
|
8
|
-
Check whether `
|
|
8
|
+
Check whether `grid` is on `$PATH`:
|
|
9
9
|
|
|
10
10
|
```
|
|
11
|
-
|
|
11
|
+
grid --version
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
If that fails, install it:
|
|
@@ -20,10 +20,10 @@ npm install -g @cloudgrid-io/cli
|
|
|
20
20
|
## 2. Ensure the user is logged in
|
|
21
21
|
|
|
22
22
|
```
|
|
23
|
-
|
|
23
|
+
grid whoami
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
If that fails, tell the user to run `
|
|
26
|
+
If that fails, tell the user to run `grid login` and wait for them to confirm.
|
|
27
27
|
Do not attempt to log in for them. Do not invent an auth flow.
|
|
28
28
|
|
|
29
29
|
## 3. Confirm the skills are available
|
|
@@ -44,7 +44,7 @@ Load the `SKILL.md` for the action the user wants:
|
|
|
44
44
|
|
|
45
45
|
Each `SKILL.md` carries its own steps. Follow them exactly. The common rules:
|
|
46
46
|
|
|
47
|
-
- Wrap only the `
|
|
47
|
+
- Wrap only the `grid` CLI. Do not call the API directly.
|
|
48
48
|
- Detect the user's language from their first message and reply in it. Keep
|
|
49
49
|
technical flags in English.
|
|
50
50
|
- Print results concisely: URLs and short summaries. Never dump raw JSON or IDs.
|
package/src/corpus/install.md
CHANGED
|
@@ -5,14 +5,14 @@ cover the CLI prerequisite, then each agent.
|
|
|
5
5
|
|
|
6
6
|
## Prerequisite: the CloudGrid CLI
|
|
7
7
|
|
|
8
|
-
Every skill drives the `
|
|
8
|
+
Every skill drives the `grid` CLI. Install it once and log in:
|
|
9
9
|
|
|
10
10
|
```
|
|
11
11
|
npm install -g @cloudgrid-io/cli
|
|
12
|
-
|
|
12
|
+
grid login
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
`
|
|
15
|
+
`grid whoami` confirms you are logged in.
|
|
16
16
|
|
|
17
17
|
## Add the skills
|
|
18
18
|
|
|
@@ -124,7 +124,7 @@ The MCP server is published separately as
|
|
|
124
124
|
npx -y @cloudgrid-io/mcp
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
-
It wraps the same `
|
|
127
|
+
It wraps the same `grid` CLI and uses the same credentials, so no extra login
|
|
128
128
|
is needed. Remote-capable clients can point at `https://mcp.cloudgrid.io/mcp`
|
|
129
129
|
instead. See [USAGE.md](USAGE.md) for per-client snippets.
|
|
130
130
|
|
|
@@ -138,7 +138,7 @@ Desktop: Settings, Extensions, Install from file):
|
|
|
138
138
|
https://github.com/cloudgrid-io/mcp/releases/latest/download/cloudgrid.mcpb
|
|
139
139
|
```
|
|
140
140
|
|
|
141
|
-
The bundle carries the full local toolset (including the `
|
|
141
|
+
The bundle carries the full local toolset (including the `grid` CLI), so deploy
|
|
142
142
|
and secrets tools work without a separate install. Sign in from chat with the
|
|
143
143
|
`grid_login` tool on first use.
|
|
144
144
|
|
|
@@ -14,8 +14,8 @@ loops forever.
|
|
|
14
14
|
|
|
15
15
|
This is a known platform issue, not a mistake in your request. Do not retry with
|
|
16
16
|
different flag or path permutations — they will all fail the same way. If a
|
|
17
|
-
terminal is available, deploy from the CLI instead (`grid plug <path>`
|
|
18
|
-
|
|
17
|
+
terminal is available, deploy from the CLI instead (`grid plug <path>`).
|
|
18
|
+
If no terminal is available, stop and tell the user
|
|
19
19
|
this is a known issue and needs the CLI.
|
|
20
20
|
|
|
21
21
|
## 429 anonymous cap
|
|
@@ -4,7 +4,7 @@ name: brain
|
|
|
4
4
|
description: |
|
|
5
5
|
Refresh a CloudGrid entity's Grid Brain metadata. Use when the user wants to
|
|
6
6
|
re-classify an entity, regenerate its description, tags, or diagram, or update
|
|
7
|
-
how it appears in discovery after a change. Wraps
|
|
7
|
+
how it appears in discovery after a change. Wraps grid brain refresh.
|
|
8
8
|
argument-hint: "[name]"
|
|
9
9
|
allowed-tools: Bash
|
|
10
10
|
---
|
|
@@ -13,12 +13,12 @@ allowed-tools: Bash
|
|
|
13
13
|
|
|
14
14
|
Re-run the Grid Brain hooks for an entity to re-classify its description, tags, and
|
|
15
15
|
diagram. Use this after a change so discovery reflects the current state. Wraps
|
|
16
|
-
`
|
|
16
|
+
`grid brain refresh`.
|
|
17
17
|
|
|
18
18
|
## Step 0 — Bootstrap
|
|
19
19
|
|
|
20
|
-
1. If `
|
|
21
|
-
2. If `
|
|
20
|
+
1. If `grid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
21
|
+
2. If `grid whoami` fails: ask the user to run `grid login`. Wait for
|
|
22
22
|
confirmation.
|
|
23
23
|
|
|
24
24
|
## UX rules
|
|
@@ -30,7 +30,7 @@ diagram. Use this after a change so discovery reflects the current state. Wraps
|
|
|
30
30
|
## How to run it
|
|
31
31
|
|
|
32
32
|
```
|
|
33
|
-
|
|
33
|
+
grid brain refresh my-thing --wait
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
`--wait` polls until the refresh finishes, up to about 60 seconds. Without it, the
|
|
@@ -46,4 +46,4 @@ Other flags:
|
|
|
46
46
|
|
|
47
47
|
The refresh reports each hook: classify (description and tags), identification, and
|
|
48
48
|
the diagram. Summarize the outcome in one line, for example "Re-classified with 3
|
|
49
|
-
tags." Suggest `
|
|
49
|
+
tags." Suggest `grid status <name>` if the user wants the full updated entity.
|
|
@@ -21,7 +21,7 @@ re-homes the drop into the user's grid, so its public URL changes from
|
|
|
21
21
|
## Step 0 — sign in first
|
|
22
22
|
|
|
23
23
|
Claiming needs an identity. If the user is not signed in, run the `cloudgrid:login`
|
|
24
|
-
skill (or `
|
|
24
|
+
skill (or `grid login` with the CLI) first.
|
|
25
25
|
|
|
26
26
|
## What you need
|
|
27
27
|
|
|
@@ -4,19 +4,19 @@ name: feedback
|
|
|
4
4
|
description: |
|
|
5
5
|
Read the CloudGrid feedback feed. Use when the user wants to see feedback, check
|
|
6
6
|
what people said, review reactions, or read recent feedback events for their org.
|
|
7
|
-
Wraps
|
|
7
|
+
Wraps grid feedback list.
|
|
8
8
|
argument-hint: "[--since 7d]"
|
|
9
9
|
allowed-tools: Bash
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# CloudGrid Feedback
|
|
13
13
|
|
|
14
|
-
List recent feedback events for the active org. Wraps `
|
|
14
|
+
List recent feedback events for the active org. Wraps `grid feedback list`.
|
|
15
15
|
|
|
16
16
|
## Step 0 — Bootstrap
|
|
17
17
|
|
|
18
|
-
1. If `
|
|
19
|
-
2. If `
|
|
18
|
+
1. If `grid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
19
|
+
2. If `grid whoami` fails: ask the user to run `grid login`. Wait for
|
|
20
20
|
confirmation.
|
|
21
21
|
|
|
22
22
|
## UX rules
|
|
@@ -28,7 +28,7 @@ List recent feedback events for the active org. Wraps `cloudgrid feedback list`.
|
|
|
28
28
|
## How to run it
|
|
29
29
|
|
|
30
30
|
```
|
|
31
|
-
|
|
31
|
+
grid feedback list
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
The feed is scoped to the active org. It is not filtered by entity. Useful flags:
|
|
@@ -44,6 +44,6 @@ when there are many. Surface the ones that look like bugs or blockers first.
|
|
|
44
44
|
|
|
45
45
|
## Note: reading vs sending
|
|
46
46
|
|
|
47
|
-
This skill reads the feed. `
|
|
47
|
+
This skill reads the feed. `grid feedback "<message>"` does the opposite: it
|
|
48
48
|
sends feedback to the CloudGrid team. Do not send feedback unless the user clearly
|
|
49
49
|
asks to report something.
|
package/src/corpus/skill-init.md
CHANGED
|
@@ -4,7 +4,7 @@ name: init
|
|
|
4
4
|
description: |
|
|
5
5
|
Scaffold a new CloudGrid app or agent. Use when the user wants to start a new
|
|
6
6
|
project, create a new entity, set up a new app or agent, or seed a web service
|
|
7
|
-
(node, nextjs, python, or static) before deploying. Wraps
|
|
7
|
+
(node, nextjs, python, or static) before deploying. Wraps grid init.
|
|
8
8
|
argument-hint: "[app|agent] [name]"
|
|
9
9
|
allowed-tools: Bash
|
|
10
10
|
---
|
|
@@ -12,12 +12,12 @@ allowed-tools: Bash
|
|
|
12
12
|
# CloudGrid Init
|
|
13
13
|
|
|
14
14
|
Register a new app or agent in the active org and, optionally, seed a web service
|
|
15
|
-
to deploy. Wraps `
|
|
15
|
+
to deploy. Wraps `grid init`. After this, `cloudgrid:plug` deploys it.
|
|
16
16
|
|
|
17
17
|
## Step 0 — Bootstrap
|
|
18
18
|
|
|
19
|
-
1. If `
|
|
20
|
-
2. If `
|
|
19
|
+
1. If `grid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
20
|
+
2. If `grid whoami` fails: ask the user to run `grid login`. Wait for
|
|
21
21
|
confirmation.
|
|
22
22
|
|
|
23
23
|
## UX rules
|
|
@@ -47,25 +47,25 @@ Optional, only if the user implies them:
|
|
|
47
47
|
Register an app and seed a static site:
|
|
48
48
|
|
|
49
49
|
```
|
|
50
|
-
|
|
50
|
+
grid init app my-thing --type static
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
Register an agent:
|
|
54
54
|
|
|
55
55
|
```
|
|
56
|
-
|
|
56
|
+
grid init agent my-helper
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
Register without seeding any files (you will add your own):
|
|
60
60
|
|
|
61
61
|
```
|
|
62
|
-
|
|
62
|
+
grid init app my-thing
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
## After init
|
|
66
66
|
|
|
67
67
|
Tell the user the entity is registered and what is next: `cd` into the directory
|
|
68
|
-
(if seeded) and run `
|
|
68
|
+
(if seeded) and run `grid plug` to deploy. Hand off to `cloudgrid:plug`.
|
|
69
69
|
|
|
70
70
|
## References
|
|
71
71
|
|
|
@@ -18,10 +18,10 @@ There are two paths. Pick the first that fits.
|
|
|
18
18
|
|
|
19
19
|
## Path 1 — the CLI is installed
|
|
20
20
|
|
|
21
|
-
If `
|
|
21
|
+
If `grid` is on `$PATH`, this is the simplest and safest:
|
|
22
22
|
|
|
23
23
|
```
|
|
24
|
-
|
|
24
|
+
grid login
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
It opens the browser, handles the OAuth flow, and stores the token. Stop here.
|
|
@@ -74,7 +74,7 @@ uses (`~/.cloudgrid/credentials`), so the two share one identity.
|
|
|
74
74
|
|
|
75
75
|
## After login
|
|
76
76
|
|
|
77
|
-
Confirm the user is signed in (`
|
|
77
|
+
Confirm the user is signed in (`grid whoami` if the CLI is present). If they
|
|
78
78
|
made an anonymous drop earlier, this is the moment to offer to claim it.
|
|
79
79
|
|
|
80
80
|
## Notes
|
package/src/corpus/skill-logs.md
CHANGED
|
@@ -4,19 +4,19 @@ name: logs
|
|
|
4
4
|
description: |
|
|
5
5
|
Tail logs for a CloudGrid entity. Use when the user wants to see logs, watch
|
|
6
6
|
output, follow a running app, debug a deploy, or check why something is failing.
|
|
7
|
-
Wraps
|
|
7
|
+
Wraps grid logs.
|
|
8
8
|
argument-hint: "[name]"
|
|
9
9
|
allowed-tools: Bash
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# CloudGrid Logs
|
|
13
13
|
|
|
14
|
-
Stream or tail logs from an entity's pods. Wraps `
|
|
14
|
+
Stream or tail logs from an entity's pods. Wraps `grid logs`.
|
|
15
15
|
|
|
16
16
|
## Step 0 — Bootstrap
|
|
17
17
|
|
|
18
|
-
1. If `
|
|
19
|
-
2. If `
|
|
18
|
+
1. If `grid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
19
|
+
2. If `grid whoami` fails: ask the user to run `grid login`. Wait for
|
|
20
20
|
confirmation.
|
|
21
21
|
|
|
22
22
|
## UX rules
|
|
@@ -30,7 +30,7 @@ Stream or tail logs from an entity's pods. Wraps `cloudgrid logs`.
|
|
|
30
30
|
Tail the recent logs for an entity by name:
|
|
31
31
|
|
|
32
32
|
```
|
|
33
|
-
|
|
33
|
+
grid logs my-thing
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
With no name, it uses the entity linked to the current directory.
|
package/src/corpus/skill-plug.md
CHANGED
|
@@ -6,7 +6,7 @@ description: |
|
|
|
6
6
|
wants to ship, deploy, publish, share, send a friend a link, or go live — a
|
|
7
7
|
single HTML page or a full app. One self-contained HTML page publishes instantly
|
|
8
8
|
as an inspiration (any edition, no login needed); a multi-file app deploys from a
|
|
9
|
-
directory or URL. Wraps
|
|
9
|
+
directory or URL. Wraps grid plug.
|
|
10
10
|
argument-hint: "[path-or-url]"
|
|
11
11
|
allowed-tools: Bash
|
|
12
12
|
---
|
|
@@ -23,7 +23,7 @@ Deploy or share a creation and get a public URL. This is the one deploy/share ve
|
|
|
23
23
|
**any edition**, no login required. See "Share a single HTML page" below.
|
|
24
24
|
- **Anything more** — separate files/folders, a real `assets/` dir, separate
|
|
25
25
|
`.css`/`.js`, multiple pages, a SPA build — **or** any data/server/LLM/cron need
|
|
26
|
-
→ a **runtime app**: `
|
|
26
|
+
→ a **runtime app**: `grid plug` on a linked folder, **local edition only**,
|
|
27
27
|
async build. See "Deploy an app" below.
|
|
28
28
|
|
|
29
29
|
## Share a single HTML page (the fast path)
|
|
@@ -75,12 +75,12 @@ Print the `url` on its own line so it can be copied in one go. A single page is
|
|
|
75
75
|
|
|
76
76
|
## Deploy an app
|
|
77
77
|
|
|
78
|
-
Wraps `
|
|
78
|
+
Wraps `grid plug`. Prints the live URL when it is done.
|
|
79
79
|
|
|
80
80
|
## Step 0 — Bootstrap
|
|
81
81
|
|
|
82
|
-
1. If `
|
|
83
|
-
2. If `
|
|
82
|
+
1. If `grid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
83
|
+
2. If `grid whoami` fails: ask the user to run `grid login`. Wait for
|
|
84
84
|
confirmation.
|
|
85
85
|
|
|
86
86
|
## UX rules
|
|
@@ -95,7 +95,7 @@ Wraps `cloudgrid plug`. Prints the live URL when it is done.
|
|
|
95
95
|
Most of the time, run it from the project directory with no arguments:
|
|
96
96
|
|
|
97
97
|
```
|
|
98
|
-
|
|
98
|
+
grid plug
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
It uses the entity linked to the directory, builds, deploys, and prints the URL.
|
|
@@ -103,9 +103,9 @@ A first deploy usually takes about 30 seconds; larger builds take longer.
|
|
|
103
103
|
|
|
104
104
|
Other shapes:
|
|
105
105
|
|
|
106
|
-
- **A specific path:** `
|
|
107
|
-
- **A URL as an inspiration:** `
|
|
108
|
-
- **Bind to an existing entity first:** `
|
|
106
|
+
- **A specific path:** `grid plug ./site`
|
|
107
|
+
- **A URL as an inspiration:** `grid plug https://example.com`
|
|
108
|
+
- **Bind to an existing entity first:** `grid plug --existing <entity-id>`
|
|
109
109
|
|
|
110
110
|
If this is the user's first deploy in the org, the CLI may ask which org to use.
|
|
111
111
|
Pass `--org <slug>` to skip that prompt.
|
|
@@ -4,7 +4,7 @@ name: share
|
|
|
4
4
|
description: |
|
|
5
5
|
Make a CloudGrid entity shareable and print its URL. Use when the user wants to
|
|
6
6
|
share a link, make something public, send an app to someone, or get a shareable
|
|
7
|
-
URL. Wraps
|
|
7
|
+
URL. Wraps grid visibility.
|
|
8
8
|
argument-hint: "[name]"
|
|
9
9
|
allowed-tools: Bash
|
|
10
10
|
---
|
|
@@ -12,12 +12,12 @@ allowed-tools: Bash
|
|
|
12
12
|
# CloudGrid Share
|
|
13
13
|
|
|
14
14
|
Set an entity's visibility so others can reach it, then print the URL. Wraps
|
|
15
|
-
`
|
|
15
|
+
`grid visibility set`.
|
|
16
16
|
|
|
17
17
|
## Step 0 — Bootstrap
|
|
18
18
|
|
|
19
|
-
1. If `
|
|
20
|
-
2. If `
|
|
19
|
+
1. If `grid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
20
|
+
2. If `grid whoami` fails: ask the user to run `grid login`. Wait for
|
|
21
21
|
confirmation.
|
|
22
22
|
|
|
23
23
|
## UX rules
|
|
@@ -31,14 +31,14 @@ Set an entity's visibility so others can reach it, then print the URL. Wraps
|
|
|
31
31
|
To make an entity reachable by anyone with the link:
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
|
|
34
|
+
grid visibility set my-thing link
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
The command prints the outlet URL. Hand that URL to the user.
|
|
38
38
|
|
|
39
39
|
## Visibility modes
|
|
40
40
|
|
|
41
|
-
`
|
|
41
|
+
`grid visibility set <slug> <mode>` accepts:
|
|
42
42
|
|
|
43
43
|
- `link` — anyone with the URL can open it. Use this for sharing.
|
|
44
44
|
- `private` — only the owner.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Multi-agent skills for CloudGrid. Install them in Claude Code, Codex, or Cursor,
|
|
4
4
|
and your agent can build, ship, and run things on CloudGrid through the
|
|
5
|
-
`
|
|
5
|
+
`grid` CLI.
|
|
6
6
|
|
|
7
7
|
## Why CloudGrid
|
|
8
8
|
|
|
@@ -22,7 +22,7 @@ behalf: scaffold, deploy, tail logs, share, read feedback. Everything here is fr
|
|
|
22
22
|
2. Log in:
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
|
|
25
|
+
grid login
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
3. Add the agent-core. In Claude Code (recommended):
|
|
@@ -10,7 +10,7 @@ Match the symptom to the row, apply the fix, and stop. Do not retry permutations
|
|
|
10
10
|
|
|
11
11
|
| Symptom | Cause | Fix |
|
|
12
12
|
| --- | --- | --- |
|
|
13
|
-
| `SCOPE_INVALID` on deploy | Known platform issue, not your request | Deploy from a terminal with `grid plug <path
|
|
13
|
+
| `SCOPE_INVALID` on deploy | Known platform issue, not your request | Deploy from a terminal with `grid plug <path>`. Do not retry flag or path permutations. If no terminal is available, tell the user it is a known issue that needs the CLI. |
|
|
14
14
|
| `429` anonymous cap reached | Anonymous deploy quota is exhausted | Stop. Do not log in to work around it and do not retry today. Tell the user the cap is reached; they can try later or sign in for a higher limit as a deliberate choice. |
|
|
15
15
|
| `409 EDIT_REJECTED` on re-plug | The target entity is archived or expired | Do not silently create a new entity — that mints a new URL and orphans the shared one. Ask the user before creating a fresh entity. |
|
|
16
16
|
| `401` on an anonymous edit | Missing or stale `owner_token` | Re-plug with the `owner_token` from the last deploy of that entity. Each anonymous edit returns a fresh token — store the new one and use it next time. |
|
package/src/corpus/usage.md
CHANGED
|
@@ -15,7 +15,7 @@ Which one you use depends on the client. Pick your client below.
|
|
|
15
15
|
|
|
16
16
|
- **Node 18+** (for `npx`).
|
|
17
17
|
- **No login needed to try it** — anonymous drop works out of the box. For owned
|
|
18
|
-
drops (into your org), run `
|
|
18
|
+
drops (into your org), run `grid login` once, or use the `login` skill / the
|
|
19
19
|
`grid_login` MCP tool.
|
|
20
20
|
|
|
21
21
|
---
|
|
@@ -115,7 +115,7 @@ response is `status: "building"` with a `poll_url` / entity, NOT a live URL yet.
|
|
|
115
115
|
|
|
116
116
|
Give the user the live app URL — that is the deliverable. To iterate, re-plug
|
|
117
117
|
the SAME entity (`target_entity_id`) so it updates the same URL. Runtime re-plug
|
|
118
|
-
uses the CLI path (`
|
|
118
|
+
uses the CLI path (`grid plug` in the linked folder), per the plug
|
|
119
119
|
description.
|
|
120
120
|
|
|
121
121
|
Keep it honest: async build, local-edition only, credentials injected by the
|
package/src/tools.js
CHANGED
|
@@ -231,12 +231,15 @@ function resolveCwd(cwd) {
|
|
|
231
231
|
return abs;
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
-
//
|
|
235
|
-
//
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
234
|
+
// The lazy npx fallback always fetches the LATEST published CLI, so the MCP is
|
|
235
|
+
// never left behind the platform's required CLI version (a pinned range went
|
|
236
|
+
// stale and the API then rejected it with "install the latest CLI").
|
|
237
|
+
const CLI_NPX_PKG = "@cloudgrid-io/cli@latest";
|
|
238
|
+
|
|
239
|
+
// Minimum CLI version the MCP will USE if it finds one already installed. Below
|
|
240
|
+
// this, skip the local/global CLI and fall back to `npx @latest`. Keep at (or
|
|
241
|
+
// above) the platform's current required floor.
|
|
242
|
+
const MIN_CLI_VERSION = "0.15.0";
|
|
240
243
|
|
|
241
244
|
// Verb map for the drift guard: each CLI-wrapping tool's top-level verb(s).
|
|
242
245
|
// The drift-guard test imports this and asserts every verb exists in `cloudgrid --help`.
|