@cloudgrid-io/mcp 0.4.7 → 0.5.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/package.json +5 -2
- package/src/corpus/cli-reference.md +148 -0
- package/src/corpus/cookbook.md +89 -0
- package/src/corpus/install-for-agents.md +63 -0
- package/src/corpus/install.md +117 -0
- package/src/corpus/skill-brain.md +49 -0
- package/src/corpus/skill-claim.md +53 -0
- package/src/corpus/skill-drop.md +111 -0
- package/src/corpus/skill-feedback.md +49 -0
- package/src/corpus/skill-init.md +72 -0
- package/src/corpus/skill-login.md +86 -0
- package/src/corpus/skill-logs.md +52 -0
- package/src/corpus/skill-plug.md +57 -0
- package/src/corpus/skill-share.md +55 -0
- package/src/corpus/skills-readme.md +92 -0
- package/src/corpus/usage.md +138 -0
- package/src/docs-search.js +176 -0
- package/src/docs.js +135 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.2.0
|
|
3
|
+
name: feedback
|
|
4
|
+
description: |
|
|
5
|
+
Read the CloudGrid feedback feed. Use when the user wants to see feedback, check
|
|
6
|
+
what people said, review reactions, or read recent feedback events for their org.
|
|
7
|
+
Wraps cloudgrid feedback list.
|
|
8
|
+
argument-hint: "[--since 7d]"
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CloudGrid Feedback
|
|
13
|
+
|
|
14
|
+
List recent feedback events for the active org. Wraps `cloudgrid feedback list`.
|
|
15
|
+
|
|
16
|
+
## Step 0 — Bootstrap
|
|
17
|
+
|
|
18
|
+
1. If `cloudgrid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
19
|
+
2. If `cloudgrid whoami` fails: ask the user to run `cloudgrid login`. Wait for
|
|
20
|
+
confirmation.
|
|
21
|
+
|
|
22
|
+
## UX rules
|
|
23
|
+
|
|
24
|
+
- Be concise. Summarize the feed; do not paste every event verbatim.
|
|
25
|
+
- Detect the user's language from their first message and reply in it. Keep
|
|
26
|
+
technical flags in English.
|
|
27
|
+
|
|
28
|
+
## How to run it
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
cloudgrid feedback list
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The feed is scoped to the active org. It is not filtered by entity. Useful flags:
|
|
35
|
+
|
|
36
|
+
- `--since <duration>` — only events newer than this, for example `24h`, `7d`.
|
|
37
|
+
- `--limit <n>` — number of events. Default 50, max 200.
|
|
38
|
+
- `--org <slug>` — read another org's feed (where you have access).
|
|
39
|
+
|
|
40
|
+
## Reading the output
|
|
41
|
+
|
|
42
|
+
Each event has a time, an id, an org, and a message. Group or summarize by theme
|
|
43
|
+
when there are many. Surface the ones that look like bugs or blockers first.
|
|
44
|
+
|
|
45
|
+
## Note: reading vs sending
|
|
46
|
+
|
|
47
|
+
This skill reads the feed. `cloudgrid feedback "<message>"` does the opposite: it
|
|
48
|
+
sends feedback to the CloudGrid team. Do not send feedback unless the user clearly
|
|
49
|
+
asks to report something.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.2.0
|
|
3
|
+
name: init
|
|
4
|
+
description: |
|
|
5
|
+
Scaffold a new CloudGrid app or agent. Use when the user wants to start a new
|
|
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 cloudgrid init.
|
|
8
|
+
argument-hint: "[app|agent] [name]"
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CloudGrid Init
|
|
13
|
+
|
|
14
|
+
Register a new app or agent in the active org and, optionally, seed a web service
|
|
15
|
+
to deploy. Wraps `cloudgrid init`. After this, `cloudgrid:plug` deploys it.
|
|
16
|
+
|
|
17
|
+
## Step 0 — Bootstrap
|
|
18
|
+
|
|
19
|
+
1. If `cloudgrid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
20
|
+
2. If `cloudgrid whoami` fails: ask the user to run `cloudgrid login`. Wait for
|
|
21
|
+
confirmation.
|
|
22
|
+
|
|
23
|
+
## UX rules
|
|
24
|
+
|
|
25
|
+
- Be concise. No raw IDs, no JSON dumps in chat.
|
|
26
|
+
- Detect the user's language from their first message and reply in it. Keep
|
|
27
|
+
technical flags in English.
|
|
28
|
+
- Pick sane defaults. Ask one thing at a time, only when something is missing.
|
|
29
|
+
|
|
30
|
+
## What to ask
|
|
31
|
+
|
|
32
|
+
You need two things: the kind and the name.
|
|
33
|
+
|
|
34
|
+
- **Kind:** `app` or `agent`. Default to `app` unless the user describes an agent
|
|
35
|
+
(something that acts on its own, calls tools, or runs on a schedule).
|
|
36
|
+
- **Name:** a slug, 3 to 40 lowercase letters, numbers, or hyphens. If the user
|
|
37
|
+
gives a title, derive a slug from it. Confirm the slug before running.
|
|
38
|
+
|
|
39
|
+
Optional, only if the user implies them:
|
|
40
|
+
|
|
41
|
+
- `--type` to seed a web service: `node`, `nextjs`, `python`, or `static`.
|
|
42
|
+
- `--dir` to scaffold somewhere other than `./<name>`.
|
|
43
|
+
- `--description` for a one-line description.
|
|
44
|
+
|
|
45
|
+
## Usage
|
|
46
|
+
|
|
47
|
+
Register an app and seed a static site:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
cloudgrid init app my-thing --type static
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Register an agent:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
cloudgrid init agent my-helper
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Register without seeding any files (you will add your own):
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
cloudgrid init app my-thing
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## After init
|
|
66
|
+
|
|
67
|
+
Tell the user the entity is registered and what is next: `cd` into the directory
|
|
68
|
+
(if seeded) and run `cloudgrid plug` to deploy. Hand off to `cloudgrid:plug`.
|
|
69
|
+
|
|
70
|
+
## References
|
|
71
|
+
|
|
72
|
+
- [./references/options.md](./references/options.md) — full flag list and the four service types.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.2.0
|
|
3
|
+
name: login
|
|
4
|
+
description: |
|
|
5
|
+
Sign in to CloudGrid, with or without the CLI. Use when the user wants to log in,
|
|
6
|
+
sign in, authenticate, connect their account, or claim an anonymous drop they made
|
|
7
|
+
earlier. Uses CloudGrid's existing OAuth. No new account needed.
|
|
8
|
+
argument-hint: ""
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CloudGrid Login
|
|
13
|
+
|
|
14
|
+
Get the user a CloudGrid identity token. This is the step that turns an anonymous
|
|
15
|
+
user into an owned one — and the step that lets them claim earlier anonymous drops.
|
|
16
|
+
|
|
17
|
+
There are two paths. Pick the first that fits.
|
|
18
|
+
|
|
19
|
+
## Path 1 — the CLI is installed
|
|
20
|
+
|
|
21
|
+
If `cloudgrid` is on `$PATH`, this is the simplest and safest:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
cloudgrid login
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
It opens the browser, handles the OAuth flow, and stores the token. Stop here.
|
|
28
|
+
|
|
29
|
+
## Path 2 — no CLI (the CLI-free flow)
|
|
30
|
+
|
|
31
|
+
Reproduce the same OAuth flow by hand. It writes the same credentials file the CLI
|
|
32
|
+
uses (`~/.cloudgrid/credentials`), so the two share one identity.
|
|
33
|
+
|
|
34
|
+
1. Make a session code and give the user the sign-in URL:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
CODE=$(uuidgen | tr 'A-Z' 'a-z')
|
|
38
|
+
echo "Open this and sign in with Google: https://api.cloudgrid.io/auth/login?code=$CODE"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Show the user the URL. Wait for them to say they finished.
|
|
42
|
+
|
|
43
|
+
2. Poll for the token (the window is 5 minutes; it is single-use):
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
curl -sS "https://api.cloudgrid.io/auth/status?code=$CODE"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
- `{"status":"pending"}` or `404` — not done yet. Ask the user to finish, retry.
|
|
50
|
+
- `{"status":"authenticated","jwt":"..."}` — capture the `jwt`. Continue.
|
|
51
|
+
- `{"status":"expired"}` — the window closed. Start over from step 1.
|
|
52
|
+
|
|
53
|
+
3. Save the token in the CLI's format, readable only by the user:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
umask 077 && mkdir -p ~/.cloudgrid
|
|
57
|
+
# JWT holds the token captured above
|
|
58
|
+
PAYLOAD=$(printf '%s' "$JWT" | cut -d. -f2 | tr '_-' '/+')
|
|
59
|
+
EMAIL=$(printf '%s==' "$PAYLOAD" | base64 -d 2>/dev/null | (jq -r .email 2>/dev/null || true))
|
|
60
|
+
UID=$(printf '%s==' "$PAYLOAD" | base64 -d 2>/dev/null | (jq -r .sub 2>/dev/null || true))
|
|
61
|
+
printf '{"jwt":"%s","issued_at":"%s","email":"%s","user_id":"%s"}\n' \
|
|
62
|
+
"$JWT" "$(date -u +%FT%TZ)" "$EMAIL" "$UID" > ~/.cloudgrid/credentials
|
|
63
|
+
chmod 600 ~/.cloudgrid/credentials
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
If `jq` is not available, leave `email` and `user_id` empty — only the `jwt`
|
|
67
|
+
matters; the server reads identity from the token itself.
|
|
68
|
+
|
|
69
|
+
## UX rules
|
|
70
|
+
|
|
71
|
+
- Be concise. The user does one thing: open a link and sign in.
|
|
72
|
+
- Detect the user's language from their first message and reply in it.
|
|
73
|
+
- Never write the token anywhere except `~/.cloudgrid/credentials`. Never print it.
|
|
74
|
+
|
|
75
|
+
## After login
|
|
76
|
+
|
|
77
|
+
Confirm the user is signed in (`cloudgrid whoami` if the CLI is present). If they
|
|
78
|
+
made an anonymous drop earlier, this is the moment to offer to claim it.
|
|
79
|
+
|
|
80
|
+
## Notes
|
|
81
|
+
|
|
82
|
+
- Enterprise single sign-on is not supported in this flow yet; those users sign in
|
|
83
|
+
through the Console for now.
|
|
84
|
+
- The MCP server exposes the same flow as `cloudgrid_login` and
|
|
85
|
+
`cloudgrid_login_status`, which handle the polling and the credentials write for
|
|
86
|
+
you.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.2.0
|
|
3
|
+
name: logs
|
|
4
|
+
description: |
|
|
5
|
+
Tail logs for a CloudGrid entity. Use when the user wants to see logs, watch
|
|
6
|
+
output, follow a running app, debug a deploy, or check why something is failing.
|
|
7
|
+
Wraps cloudgrid logs.
|
|
8
|
+
argument-hint: "[name]"
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CloudGrid Logs
|
|
13
|
+
|
|
14
|
+
Stream or tail logs from an entity's pods. Wraps `cloudgrid logs`.
|
|
15
|
+
|
|
16
|
+
## Step 0 — Bootstrap
|
|
17
|
+
|
|
18
|
+
1. If `cloudgrid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
19
|
+
2. If `cloudgrid whoami` fails: ask the user to run `cloudgrid login`. Wait for
|
|
20
|
+
confirmation.
|
|
21
|
+
|
|
22
|
+
## UX rules
|
|
23
|
+
|
|
24
|
+
- Be concise. Show the relevant lines, not the whole buffer.
|
|
25
|
+
- Detect the user's language from their first message and reply in it. Keep
|
|
26
|
+
technical flags and log output in their original form.
|
|
27
|
+
|
|
28
|
+
## How to run it
|
|
29
|
+
|
|
30
|
+
Tail the recent logs for an entity by name:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
cloudgrid logs my-thing
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
With no name, it uses the entity linked to the current directory.
|
|
37
|
+
|
|
38
|
+
Useful flags:
|
|
39
|
+
|
|
40
|
+
- `--tail <n>` — number of recent lines. Default 100.
|
|
41
|
+
- `--since <duration>` — only logs newer than this, for example `5m`, `1h`, `2d`.
|
|
42
|
+
- `--follow` — stream continuously.
|
|
43
|
+
|
|
44
|
+
Use `--follow` only when the user asks to watch live. It does not return on its
|
|
45
|
+
own, so do not use it for a one-time check. For a quick look, use `--tail` or
|
|
46
|
+
`--since` instead.
|
|
47
|
+
|
|
48
|
+
## Reading the output
|
|
49
|
+
|
|
50
|
+
If the user is debugging, summarize what the logs show: the error, the failing
|
|
51
|
+
request, or that the service is healthy. Quote the key lines. Do not paste pages
|
|
52
|
+
of output into chat.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.2.0
|
|
3
|
+
name: plug
|
|
4
|
+
description: |
|
|
5
|
+
Deploy a directory or URL to CloudGrid. Use when the user wants to ship, deploy,
|
|
6
|
+
publish, or go live with the current project, or turn a URL into a hosted entity.
|
|
7
|
+
Live in about 30 seconds. Wraps cloudgrid plug.
|
|
8
|
+
argument-hint: "[path-or-url]"
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CloudGrid Plug
|
|
13
|
+
|
|
14
|
+
Build and deploy a directory, a path, or a URL. Prints the live URL when it is
|
|
15
|
+
done. This is the center of the build-and-ship loop. Wraps `cloudgrid plug`.
|
|
16
|
+
|
|
17
|
+
## Step 0 — Bootstrap
|
|
18
|
+
|
|
19
|
+
1. If `cloudgrid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
20
|
+
2. If `cloudgrid whoami` fails: ask the user to run `cloudgrid login`. Wait for
|
|
21
|
+
confirmation.
|
|
22
|
+
|
|
23
|
+
## UX rules
|
|
24
|
+
|
|
25
|
+
- Be concise. No raw IDs, no JSON dumps in chat.
|
|
26
|
+
- Detect the user's language from their first message and reply in it. Keep
|
|
27
|
+
technical flags in English.
|
|
28
|
+
- The deploy streams build progress. Let it run. Do not interrupt it.
|
|
29
|
+
|
|
30
|
+
## How to run it
|
|
31
|
+
|
|
32
|
+
Most of the time, run it from the project directory with no arguments:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
cloudgrid plug
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
It uses the entity linked to the directory, builds, deploys, and prints the URL.
|
|
39
|
+
A first deploy usually takes about 30 seconds; larger builds take longer.
|
|
40
|
+
|
|
41
|
+
Other shapes:
|
|
42
|
+
|
|
43
|
+
- **A specific path:** `cloudgrid plug ./site`
|
|
44
|
+
- **A URL as an inspiration:** `cloudgrid plug https://example.com`
|
|
45
|
+
- **Bind to an existing entity first:** `cloudgrid plug --existing <entity-id>`
|
|
46
|
+
|
|
47
|
+
If this is the user's first deploy in the org, the CLI may ask which org to use.
|
|
48
|
+
Pass `--org <slug>` to skip that prompt.
|
|
49
|
+
|
|
50
|
+
## After plug
|
|
51
|
+
|
|
52
|
+
Print the live URL plainly. Then offer the next steps: `cloudgrid:logs` to watch
|
|
53
|
+
it, or `cloudgrid:share` to make it reachable by others.
|
|
54
|
+
|
|
55
|
+
## References
|
|
56
|
+
|
|
57
|
+
- [./references/options.md](./references/options.md) — flags, URL inspirations, and first-deploy behavior.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.2.0
|
|
3
|
+
name: share
|
|
4
|
+
description: |
|
|
5
|
+
Make a CloudGrid entity shareable and print its URL. Use when the user wants to
|
|
6
|
+
share a link, make something public, send an app to someone, or get a shareable
|
|
7
|
+
URL. Wraps cloudgrid visibility.
|
|
8
|
+
argument-hint: "[name]"
|
|
9
|
+
allowed-tools: Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CloudGrid Share
|
|
13
|
+
|
|
14
|
+
Set an entity's visibility so others can reach it, then print the URL. Wraps
|
|
15
|
+
`cloudgrid visibility set`.
|
|
16
|
+
|
|
17
|
+
## Step 0 — Bootstrap
|
|
18
|
+
|
|
19
|
+
1. If `cloudgrid` is not on `$PATH`: `npm install -g @cloudgrid-io/cli`
|
|
20
|
+
2. If `cloudgrid whoami` fails: ask the user to run `cloudgrid login`. Wait for
|
|
21
|
+
confirmation.
|
|
22
|
+
|
|
23
|
+
## UX rules
|
|
24
|
+
|
|
25
|
+
- Be concise. The result the user wants is the URL. Print it plainly.
|
|
26
|
+
- Detect the user's language from their first message and reply in it. Keep
|
|
27
|
+
technical flags in English.
|
|
28
|
+
|
|
29
|
+
## How to run it
|
|
30
|
+
|
|
31
|
+
To make an entity reachable by anyone with the link:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
cloudgrid visibility set my-thing link
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The command prints the outlet URL. Hand that URL to the user.
|
|
38
|
+
|
|
39
|
+
## Visibility modes
|
|
40
|
+
|
|
41
|
+
`cloudgrid visibility set <slug> <mode>` accepts:
|
|
42
|
+
|
|
43
|
+
- `link` — anyone with the URL can open it. Use this for sharing.
|
|
44
|
+
- `private` — only the owner.
|
|
45
|
+
- `authenticated` — any logged-in user.
|
|
46
|
+
- `org` — members of the org.
|
|
47
|
+
- `space` — members of the entity's space.
|
|
48
|
+
|
|
49
|
+
Default to `link` when the user says "share" or "make it public". Confirm before
|
|
50
|
+
using a wider mode than they asked for.
|
|
51
|
+
|
|
52
|
+
## After share
|
|
53
|
+
|
|
54
|
+
Print the outlet URL on its own line, by itself, so it can be copied in one go.
|
|
55
|
+
Then, if it fits, offer the `feedback` skill to see what people say about it.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# CloudGrid Skills
|
|
2
|
+
|
|
3
|
+
Multi-agent skills for CloudGrid. Install them in Claude Code, Codex, or Cursor,
|
|
4
|
+
and your agent can build, ship, and run things on CloudGrid through the
|
|
5
|
+
`cloudgrid` CLI.
|
|
6
|
+
|
|
7
|
+
## Why CloudGrid
|
|
8
|
+
|
|
9
|
+
Claude Code and Codex removed the wall around writing code. CloudGrid removes the
|
|
10
|
+
wall around shipping it. A directory or a URL becomes a live, addressable thing in
|
|
11
|
+
about 30 seconds. These skills are how your agent crosses that second wall on your
|
|
12
|
+
behalf: scaffold, deploy, tail logs, share, read feedback. Everything here is free.
|
|
13
|
+
|
|
14
|
+
## Install in 3 steps
|
|
15
|
+
|
|
16
|
+
1. Install the CLI:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
npm install -g @cloudgrid-io/cli
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. Log in:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
cloudgrid login
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
3. Add the skills. In Claude Code (recommended):
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/plugin marketplace add cloudgrid-io/skills
|
|
32
|
+
/plugin install cloudgrid
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
They show under `/plugin` and `/skills` as `cloudgrid:drop`, `cloudgrid:login`,
|
|
36
|
+
… — or just say what you want ("drop this HTML to CloudGrid") and the right one
|
|
37
|
+
triggers.
|
|
38
|
+
|
|
39
|
+
Or install with the `gh skill` extension:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
gh skill install cloudgrid-io/skills
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Other agents (Cursor, Cline, Gemini CLI): `npx skills add cloudgrid-io/skills`.
|
|
46
|
+
They install as `drop`, `plug`, … — the CloudGrid brand comes from the plugin
|
|
47
|
+
namespace, which those agents don't have.
|
|
48
|
+
|
|
49
|
+
Claude Desktop, claude.ai, ChatGPT, and every route in one place: [USAGE.md](USAGE.md).
|
|
50
|
+
|
|
51
|
+
## Share something in one step, no login
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
/cloudgrid:drop index.html
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`cloudgrid:drop` publishes an HTML page or file and hands back a public URL. No
|
|
58
|
+
account, no CLI. The link lasts 7 days, and you can sign in later to keep it.
|
|
59
|
+
|
|
60
|
+
## Skills
|
|
61
|
+
|
|
62
|
+
| Skill | Invoke | What it does |
|
|
63
|
+
|---|---|---|
|
|
64
|
+
| `drop` | `/cloudgrid:drop` | Share an HTML page or file, get a public URL. Login optional. |
|
|
65
|
+
| `login` | `/cloudgrid:login` | Sign in to CloudGrid, with or without the CLI. |
|
|
66
|
+
| `claim` | `/cloudgrid:claim` | Claim an anonymous drop into your account after signing in. |
|
|
67
|
+
| `init` | `/cloudgrid:init` | Scaffold a new app or agent. |
|
|
68
|
+
| `plug` | `/cloudgrid:plug` | Deploy a directory or URL. Live in about 30 seconds. |
|
|
69
|
+
| `logs` | `/cloudgrid:logs` | Tail logs for an entity. |
|
|
70
|
+
| `share` | `/cloudgrid:share` | Make an entity shareable and print its URL. |
|
|
71
|
+
| `feedback` | `/cloudgrid:feedback` | Read the feedback feed. |
|
|
72
|
+
| `brain` | `/cloudgrid:brain` | Refresh an entity's Grid Brain metadata. |
|
|
73
|
+
|
|
74
|
+
## The canonical chain
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
init -> plug -> logs -> share -> feedback
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
That is the full "I built a thing and shipped it" loop. [COOKBOOK.md](COOKBOOK.md)
|
|
81
|
+
walks through it end to end.
|
|
82
|
+
|
|
83
|
+
## MCP server
|
|
84
|
+
|
|
85
|
+
The `@cloudgrid-io/mcp` package exposes the same nine actions as MCP tools, for
|
|
86
|
+
agents that speak the Model Context Protocol. It wraps the same `cloudgrid` CLI.
|
|
87
|
+
Install it with `npx -y @cloudgrid-io/mcp`, or point a remote-capable client at
|
|
88
|
+
`https://mcp.cloudgrid.io/mcp`. See [USAGE.md](USAGE.md) for per-client setup.
|
|
89
|
+
|
|
90
|
+
## License
|
|
91
|
+
|
|
92
|
+
Apache 2.0. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Using CloudGrid skills and MCP
|
|
2
|
+
|
|
3
|
+
This repo ships two things that expose the **same** CloudGrid actions — drop, login,
|
|
4
|
+
claim, init, plug, logs, share, feedback, brain:
|
|
5
|
+
|
|
6
|
+
- **Skills** — `SKILL.md` files an agent loads. They trigger from natural language
|
|
7
|
+
(their `description`) or a slash command.
|
|
8
|
+
- **MCP server** — the same actions as MCP tools, for clients that speak the Model
|
|
9
|
+
Context Protocol.
|
|
10
|
+
|
|
11
|
+
Which one you use depends on the client. Pick your client below.
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
- **Node 18+** (for `npx`).
|
|
16
|
+
- **No login needed to try it** — anonymous drop works out of the box. For owned
|
|
17
|
+
drops (into your org), run `cloudgrid login` once, or use the `login` skill / the
|
|
18
|
+
`cloudgrid_login` MCP tool.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Claude Code (terminal, VS Code, JetBrains)
|
|
23
|
+
|
|
24
|
+
Three install routes. They land in **different menus** — this is the most common
|
|
25
|
+
point of confusion.
|
|
26
|
+
|
|
27
|
+
### Route 1 — skills via the skills CLI
|
|
28
|
+
```
|
|
29
|
+
npx skills add cloudgrid-io/skills
|
|
30
|
+
```
|
|
31
|
+
- Installs into `~/.claude/skills/` (personal). Auto-loads, no restart.
|
|
32
|
+
- **Find them under `/skills`** (labeled Personal). **Not** under `/plugin`.
|
|
33
|
+
- Invoke as **`/drop`**, `/login`, … (bare — the personal route has no namespace), or describe the task.
|
|
34
|
+
|
|
35
|
+
### Route 2 — skills as a plugin
|
|
36
|
+
```
|
|
37
|
+
/plugin marketplace add cloudgrid-io/skills
|
|
38
|
+
/plugin install cloudgrid
|
|
39
|
+
```
|
|
40
|
+
- **Find it under `/plugin`**; the skills also show under `/skills` (labeled Plugin).
|
|
41
|
+
- Invoke as **`/cloudgrid:drop`** (plugin namespace + short skill name, like `superpowers:brainstorming`), or describe the task.
|
|
42
|
+
|
|
43
|
+
### Route 3 — the MCP server
|
|
44
|
+
```
|
|
45
|
+
claude mcp add cloudgrid -- npx -y @cloudgrid-io/mcp
|
|
46
|
+
```
|
|
47
|
+
- **Find it under `/mcp`.** Exposes tools `cloudgrid_drop`, `cloudgrid_login`, …
|
|
48
|
+
- Invoke by describing the task; the model calls the tool.
|
|
49
|
+
|
|
50
|
+
> Where did my install go? `/skills` (skills), `/plugin` (plugin), `/mcp` (MCP).
|
|
51
|
+
> If you don't see something, you're probably looking in the wrong menu, or you
|
|
52
|
+
> installed a different route than you're checking. `/doctor` flags real problems.
|
|
53
|
+
|
|
54
|
+
### Sharing with a team (Claude Code)
|
|
55
|
+
Commit a project-scoped MCP so teammates get it on clone:
|
|
56
|
+
```
|
|
57
|
+
cd your-shared-repo
|
|
58
|
+
claude mcp add cloudgrid -s project -- npx -y @cloudgrid-io/mcp
|
|
59
|
+
git add .mcp.json && git commit -m "add CloudGrid MCP"
|
|
60
|
+
```
|
|
61
|
+
Or each person runs Route 1 or `claude mcp add ... -s user` once.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Claude Desktop (chat)
|
|
66
|
+
|
|
67
|
+
Desktop chat extends via **MCP only** — it does not read a skills folder. Add to
|
|
68
|
+
`~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
69
|
+
```json
|
|
70
|
+
{ "mcpServers": { "cloudgrid": { "command": "npx", "args": ["-y", "@cloudgrid-io/mcp"] } } }
|
|
71
|
+
```
|
|
72
|
+
Then **fully quit and reopen** Claude Desktop. The CloudGrid tools appear under the
|
|
73
|
+
tools icon. Invoke by describing the task: "drop this HTML to CloudGrid."
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Codex, Cursor, Cline, Gemini CLI, and other coding agents
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
npx skills add cloudgrid-io/skills
|
|
81
|
+
```
|
|
82
|
+
Installs into the universal `.agents/skills/` location these agents read (Cursor
|
|
83
|
+
also reads `~/.cursor/skills`; target one agent with `-a codex` / `-a cursor`).
|
|
84
|
+
Codex and Cursor also take the plugin route (`codex plugin marketplace add
|
|
85
|
+
cloudgrid-io/skills`; Cursor's in-app marketplace) and the MCP server — local
|
|
86
|
+
(`npx -y @cloudgrid-io/mcp` in their MCP config) or remote with nothing installed
|
|
87
|
+
(`https://mcp.cloudgrid.io/mcp` as a `url` entry in `~/.codex/config.toml` or
|
|
88
|
+
`~/.cursor/mcp.json`). See INSTALL.md for exact snippets.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## claude.ai web and the ChatGPT app
|
|
93
|
+
|
|
94
|
+
These connect to **remote** MCP servers (by URL), not local ones. The hosted web
|
|
95
|
+
edition is live — add it as a custom connector:
|
|
96
|
+
|
|
97
|
+
Two endpoints, two postures:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
https://mcp.cloudgrid.io/mcp anonymous-first: drop with no sign-in
|
|
101
|
+
https://mcp-connected.cloudgrid.io/mcp connected: native sign-in when you add it
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The connected endpoint runs the client's own OAuth connect at add-time (sign in
|
|
105
|
+
with CloudGrid right in the flow); every drop is owned from the first one. The
|
|
106
|
+
anonymous endpoint needs no account; sign in later from inside the conversation.
|
|
107
|
+
|
|
108
|
+
- **claude.ai web** — Settings → Connectors → add custom connector.
|
|
109
|
+
- **ChatGPT** — add it as a custom connector (Developer Mode; availability depends
|
|
110
|
+
on plan / rollout).
|
|
111
|
+
- **Codex and Cursor** accept the same URL — see the section above.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Skill vs MCP — which should I use?
|
|
116
|
+
|
|
117
|
+
Same capabilities; different surface.
|
|
118
|
+
|
|
119
|
+
- **Skills** carry guidance (when to use, how to phrase results) and auto-trigger
|
|
120
|
+
from natural language. Best in agents that read skills (Claude Code, Cursor, …).
|
|
121
|
+
- **MCP** exposes the actions as tools. Best where skills are not read (Claude
|
|
122
|
+
Desktop, claude.ai web, ChatGPT) or when you want explicit tools.
|
|
123
|
+
|
|
124
|
+
You can install both; they do not conflict.
|
|
125
|
+
|
|
126
|
+
## Capabilities (both surfaces)
|
|
127
|
+
|
|
128
|
+
| Action | What it does |
|
|
129
|
+
|---|---|
|
|
130
|
+
| drop | Share an artifact, get a public URL. No login needed (anonymous, 7-day) or owned if signed in (30-day). |
|
|
131
|
+
| login | Sign in to CloudGrid, with or without the CLI. |
|
|
132
|
+
| claim | Claim an anonymous drop into your account; the URL stays the same. |
|
|
133
|
+
| init | Scaffold a new app or agent. |
|
|
134
|
+
| plug | Deploy a directory or URL. |
|
|
135
|
+
| logs | Tail an entity's logs. |
|
|
136
|
+
| share | Set visibility and print the URL. |
|
|
137
|
+
| feedback | Read the feedback feed. |
|
|
138
|
+
| brain | Refresh Grid Brain metadata. |
|