@cloudgrid-io/mcp 0.16.2 → 0.17.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/README.md +39 -39
- package/package.json +1 -1
- package/src/corpus/capability-map.md +7 -7
- package/src/corpus/cloudgrid-yaml.md +5 -5
- package/src/corpus/cookbook.md +1 -1
- package/src/corpus/install.md +1 -1
- package/src/corpus/rules/publish-fallbacks.md +1 -1
- package/src/corpus/skill-claim.md +1 -1
- package/src/corpus/skill-drop.md +2 -2
- package/src/corpus/skill-login.md +2 -2
- package/src/corpus/skills-readme.md +1 -1
- package/src/corpus/templates/ai-knowledge-base/AGENTS.md +1 -1
- package/src/corpus/templates/ai-knowledge-base/index.md +1 -1
- package/src/corpus/templates/api-docs/README.md +3 -3
- package/src/corpus/templates/api-docs/index.md +3 -3
- package/src/corpus/templates/appointment-booking/AGENTS.md +9 -9
- package/src/corpus/templates/appointment-booking/index.md +6 -6
- package/src/corpus/templates/approval-workflow/AGENTS.md +2 -2
- package/src/corpus/templates/approval-workflow/index.md +2 -2
- package/src/corpus/templates/billing-dashboard/index.md +1 -1
- package/src/corpus/templates/calendar-scheduler/AGENTS.md +1 -1
- package/src/corpus/templates/calendar-scheduler/index.md +1 -1
- package/src/corpus/templates/changelog/README.md +3 -3
- package/src/corpus/templates/changelog/index.md +3 -3
- package/src/corpus/templates/company-website/README.md +3 -3
- package/src/corpus/templates/company-website/cloudgrid.yaml +1 -1
- package/src/corpus/templates/company-website/index.md +3 -3
- package/src/corpus/templates/course-platform/index.md +1 -1
- package/src/corpus/templates/dashboard/cloudgrid.yaml +1 -1
- package/src/corpus/templates/dashboard/index.md +3 -3
- package/src/corpus/templates/deck/cloudgrid.yaml +1 -1
- package/src/corpus/templates/deck/index.md +3 -3
- package/src/corpus/templates/docs-site/README.md +3 -3
- package/src/corpus/templates/docs-site/index.md +3 -3
- package/src/corpus/templates/forum/AGENTS.md +6 -6
- package/src/corpus/templates/forum/index.md +1 -1
- package/src/corpus/templates/hr-portal/index.md +1 -1
- package/src/corpus/templates/internal-tools-portal/index.md +1 -1
- package/src/corpus/templates/landing-page/cloudgrid.yaml +1 -1
- package/src/corpus/templates/landing-page/index.md +3 -3
- package/src/corpus/templates/lms/index.md +1 -1
- package/src/corpus/templates/marketplace/AGENTS.md +1 -1
- package/src/corpus/templates/marketplace/index.md +1 -1
- package/src/corpus/templates/membership-site/AGENTS.md +9 -9
- package/src/corpus/templates/membership-site/index.md +6 -6
- package/src/corpus/templates/online-store/index.md +1 -1
- package/src/corpus/templates/portfolio/README.md +3 -3
- package/src/corpus/templates/portfolio/index.md +3 -3
- package/src/corpus/templates/product-launch/README.md +3 -3
- package/src/corpus/templates/product-launch/cloudgrid.yaml +1 -1
- package/src/corpus/templates/product-launch/index.md +3 -3
- package/src/corpus/templates/report/cloudgrid.yaml +1 -1
- package/src/corpus/templates/report/index.md +3 -3
- package/src/corpus/templates/restaurant-reservations/AGENTS.md +9 -9
- package/src/corpus/templates/restaurant-reservations/index.md +2 -2
- package/src/corpus/templates/saas-marketing/README.md +3 -3
- package/src/corpus/templates/saas-marketing/index.md +3 -3
- package/src/corpus/templates/status-page/README.md +3 -3
- package/src/corpus/templates/status-page/index.md +3 -3
- package/src/corpus/templates/subscription-management/AGENTS.md +9 -9
- package/src/corpus/templates/subscription-management/index.md +6 -6
- package/src/corpus/templates/waitlist/README.md +3 -3
- package/src/corpus/templates/waitlist/index.md +3 -3
- package/src/corpus/templates/web-app/cloudgrid.yaml +1 -1
- package/src/corpus/templates/web-app/index.md +3 -3
- package/src/corpus/troubleshooting/deploy-errors.md +1 -1
- package/src/corpus/troubleshooting/persistent-apps.md +1 -1
- package/src/corpus/usage.md +2 -2
- package/src/corpus/workflows/admin-dashboard.md +6 -6
- package/src/corpus/workflows/ai-app.md +8 -8
- package/src/corpus/workflows/ai-knowledge-base.md +6 -6
- package/src/corpus/workflows/analytics-dashboard.md +6 -6
- package/src/corpus/workflows/api-dashboard.md +6 -6
- package/src/corpus/workflows/api-docs.md +3 -3
- package/src/corpus/workflows/api-service.md +8 -8
- package/src/corpus/workflows/app-with-data.md +8 -8
- package/src/corpus/workflows/appointment-booking.md +8 -8
- package/src/corpus/workflows/approval-workflow.md +6 -6
- package/src/corpus/workflows/billing-dashboard.md +8 -8
- package/src/corpus/workflows/blog-cms.md +6 -6
- package/src/corpus/workflows/booking-system.md +7 -7
- package/src/corpus/workflows/calendar-scheduler.md +6 -6
- package/src/corpus/workflows/changelog.md +3 -3
- package/src/corpus/workflows/company-website.md +4 -4
- package/src/corpus/workflows/course-platform.md +7 -7
- package/src/corpus/workflows/crm.md +7 -7
- package/src/corpus/workflows/dashboard.md +4 -4
- package/src/corpus/workflows/directory.md +6 -6
- package/src/corpus/workflows/docs-site.md +3 -3
- package/src/corpus/workflows/erp.md +7 -7
- package/src/corpus/workflows/event-board.md +6 -6
- package/src/corpus/workflows/expense-tracker.md +6 -6
- package/src/corpus/workflows/feature-request-board.md +6 -6
- package/src/corpus/workflows/financial-dashboard.md +6 -6
- package/src/corpus/workflows/forum.md +7 -7
- package/src/corpus/workflows/hr-portal.md +7 -7
- package/src/corpus/workflows/internal-tools-portal.md +7 -7
- package/src/corpus/workflows/inventory.md +6 -6
- package/src/corpus/workflows/invoice.md +6 -6
- package/src/corpus/workflows/job-board.md +6 -6
- package/src/corpus/workflows/kanban.md +7 -7
- package/src/corpus/workflows/landing-page.md +4 -4
- package/src/corpus/workflows/lms.md +7 -7
- package/src/corpus/workflows/marketplace.md +6 -6
- package/src/corpus/workflows/membership-site.md +8 -8
- package/src/corpus/workflows/monitoring-dashboard.md +6 -6
- package/src/corpus/workflows/online-store.md +8 -8
- package/src/corpus/workflows/portfolio.md +3 -3
- package/src/corpus/workflows/presentation.md +4 -4
- package/src/corpus/workflows/product-catalog.md +6 -6
- package/src/corpus/workflows/product-launch.md +4 -4
- package/src/corpus/workflows/project-management.md +6 -6
- package/src/corpus/workflows/property-listings.md +6 -6
- package/src/corpus/workflows/quiz-platform.md +6 -6
- package/src/corpus/workflows/report.md +4 -4
- package/src/corpus/workflows/restaurant-reservations.md +7 -7
- package/src/corpus/workflows/revenue-dashboard.md +6 -6
- package/src/corpus/workflows/saas-marketing.md +3 -3
- package/src/corpus/workflows/semantic-search.md +7 -7
- package/src/corpus/workflows/status-page.md +3 -3
- package/src/corpus/workflows/subscription-management.md +8 -8
- package/src/corpus/workflows/task-manager.md +6 -6
- package/src/corpus/workflows/ticket-system.md +6 -6
- package/src/corpus/workflows/time-tracking.md +6 -6
- package/src/corpus/workflows/travel-booking.md +7 -7
- package/src/corpus/workflows/waitlist.md +3 -3
- package/src/corpus/workflows/web-app.md +4 -4
- package/src/docs.js +5 -5
- package/src/index.js +1 -1
- package/src/tools.js +116 -116
- package/src/web.js +1 -1
- package/src/widgets/live-result.html +1 -1
- package/src/widgets/org-picker.html +1 -1
|
@@ -33,13 +33,13 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
33
33
|
|
|
34
34
|
## 2. Auth + grid
|
|
35
35
|
|
|
36
|
-
1. Ensure signed in: `
|
|
36
|
+
1. Ensure signed in: `grid_login_status`; if not, `grid_login`.
|
|
37
37
|
2. A grid is required. Respect the grid picker: if the user has more than one
|
|
38
38
|
grid, ask which to use; do not assume a target.
|
|
39
39
|
|
|
40
40
|
## 3. Scaffold
|
|
41
41
|
|
|
42
|
-
`
|
|
42
|
+
`grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
|
|
43
43
|
and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
|
|
44
44
|
directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
|
|
45
45
|
and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
|
|
@@ -64,7 +64,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
|
|
|
64
64
|
author new yaml with it, and never set `needs:` and `requires:` together (the
|
|
65
65
|
validator rejects it).
|
|
66
66
|
2. Fetch the template for the Mongo wiring + CRUD shape:
|
|
67
|
-
`
|
|
67
|
+
`grid_fetch("template", "task-manager")`. It is a minimal, real Next.js +
|
|
68
68
|
`mongodb`-driver task manager under `services/web/`: a lazy client in
|
|
69
69
|
`services/web/lib/db.js`, an App-Router GET/POST/PATCH/DELETE route on a
|
|
70
70
|
`tasks` collection (PATCH toggles done), a server-component page, and a client
|
|
@@ -82,15 +82,15 @@ before deploying. Don't require it.
|
|
|
82
82
|
|
|
83
83
|
## 6. Config
|
|
84
84
|
|
|
85
|
-
- API keys / secrets → `
|
|
85
|
+
- API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
|
|
86
86
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
87
87
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
88
88
|
|
|
89
89
|
## 7. Deploy (async)
|
|
90
90
|
|
|
91
|
-
Deploy the folder with `
|
|
91
|
+
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
92
92
|
response is `status: "building"`, NOT a live URL yet.
|
|
93
|
-
- Poll `
|
|
93
|
+
- Poll `grid_status` (or the returned poll_url) until the entity is live.
|
|
94
94
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
95
95
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
96
96
|
|
|
@@ -31,13 +31,13 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
31
31
|
|
|
32
32
|
## 2. Auth + grid
|
|
33
33
|
|
|
34
|
-
1. Ensure signed in: `
|
|
34
|
+
1. Ensure signed in: `grid_login_status`; if not, `grid_login`.
|
|
35
35
|
2. A grid is required. Respect the grid picker: if the user has more than one
|
|
36
36
|
grid, ask which to use; do not assume a target.
|
|
37
37
|
|
|
38
38
|
## 3. Scaffold
|
|
39
39
|
|
|
40
|
-
`
|
|
40
|
+
`grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
|
|
41
41
|
and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
|
|
42
42
|
directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
|
|
43
43
|
and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
|
|
@@ -65,7 +65,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
|
|
|
65
65
|
`services.web`, and `needs.database` uncommented — so it deploys to exactly
|
|
66
66
|
those active fields.
|
|
67
67
|
2. Fetch the template for the Mongo wiring + CRUD shape:
|
|
68
|
-
`
|
|
68
|
+
`grid_fetch("template", "ticket-system")`. It is a minimal, real Next.js +
|
|
69
69
|
`mongodb`-driver app under `services/web/`: a lazy client in
|
|
70
70
|
`services/web/lib/db.js`, an App-Router GET/POST/PATCH (status)/DELETE route on a `tickets` collection, a
|
|
71
71
|
server-component page, and a client component.
|
|
@@ -82,15 +82,15 @@ before deploying. Don't require it.
|
|
|
82
82
|
|
|
83
83
|
## 6. Config
|
|
84
84
|
|
|
85
|
-
- API keys / secrets → `
|
|
85
|
+
- API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
|
|
86
86
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
87
87
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
88
88
|
|
|
89
89
|
## 7. Deploy (async)
|
|
90
90
|
|
|
91
|
-
Deploy the folder with `
|
|
91
|
+
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
92
92
|
response is `status: "building"`, NOT a live URL yet.
|
|
93
|
-
- Poll `
|
|
93
|
+
- Poll `grid_status` (or the returned poll_url) until the entity is live.
|
|
94
94
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
95
95
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
96
96
|
|
|
@@ -32,13 +32,13 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
32
32
|
|
|
33
33
|
## 2. Auth + grid
|
|
34
34
|
|
|
35
|
-
1. Ensure signed in: `
|
|
35
|
+
1. Ensure signed in: `grid_login_status`; if not, `grid_login`.
|
|
36
36
|
2. A grid is required. Respect the grid picker: if the user has more than one
|
|
37
37
|
grid, ask which to use; do not assume a target.
|
|
38
38
|
|
|
39
39
|
## 3. Scaffold
|
|
40
40
|
|
|
41
|
-
`
|
|
41
|
+
`grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
|
|
42
42
|
and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a linked
|
|
43
43
|
directory, so run `init` FIRST. Then (a) write the app under **`services/web/`**,
|
|
44
44
|
and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
|
|
@@ -63,7 +63,7 @@ and (b) fill `cloudgrid.yaml` to the shape below (`services.web` + `needs:
|
|
|
63
63
|
author new yaml with it, and never set `needs:` and `requires:` together (the
|
|
64
64
|
validator rejects it).
|
|
65
65
|
2. Fetch the template for the Mongo wiring + CRUD shape:
|
|
66
|
-
`
|
|
66
|
+
`grid_fetch("template", "time-tracking")`. It is a minimal, real Next.js +
|
|
67
67
|
`mongodb`-driver time tracker under `services/web/`: a lazy client in
|
|
68
68
|
`services/web/lib/db.js`, an App-Router GET/POST/DELETE route on an `entries`
|
|
69
69
|
collection, a server-component page, and a client form that also renders
|
|
@@ -85,15 +85,15 @@ before deploying. Don't require it.
|
|
|
85
85
|
|
|
86
86
|
## 6. Config
|
|
87
87
|
|
|
88
|
-
- API keys / secrets → `
|
|
88
|
+
- API keys / secrets → `grid_secrets`. Non-secret config → `grid_env`.
|
|
89
89
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` or the
|
|
90
90
|
legacy `MONGODB_URL`) — the grid injects them.
|
|
91
91
|
|
|
92
92
|
## 7. Deploy (async)
|
|
93
93
|
|
|
94
|
-
Deploy the folder with `
|
|
94
|
+
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
95
95
|
response is `status: "building"`, NOT a live URL yet.
|
|
96
|
-
- Poll `
|
|
96
|
+
- Poll `grid_status` (or the returned poll_url) until the entity is live.
|
|
97
97
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
98
98
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
99
99
|
|
|
@@ -40,18 +40,18 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
40
40
|
|
|
41
41
|
## 2. Auth + grid
|
|
42
42
|
|
|
43
|
-
1. Ensure signed in: `
|
|
43
|
+
1. Ensure signed in: `grid_login_status`; if not, `grid_login`.
|
|
44
44
|
2. A grid is required. Respect the grid picker: if the user has more than one
|
|
45
45
|
grid, ask which to use; do not assume a target.
|
|
46
46
|
|
|
47
47
|
## 3. Read the blueprint, then scaffold
|
|
48
48
|
|
|
49
|
-
1. Fetch the blueprint: `
|
|
49
|
+
1. Fetch the blueprint: `grid_fetch("template", "travel-booking")`. **Read its
|
|
50
50
|
`AGENTS.md`** — it is the structure guide (file tree under `services/web/`, the
|
|
51
51
|
`flights` / `hotels` / `bookings` / `trips` collections + the overbooking
|
|
52
52
|
guard, how CloudGrid injects the DB and vault secrets, how to wire Stripe +
|
|
53
53
|
auth, and the trip-reminder-cron design).
|
|
54
|
-
2. `
|
|
54
|
+
2. `grid_init` an app `<name>`. `init` creates the entity + `.cloudgrid/link.json`
|
|
55
55
|
and writes a `cloudgrid.yaml` with an EMPTY `services: {}`. `plug` needs a
|
|
56
56
|
linked directory, so run `init` FIRST.
|
|
57
57
|
|
|
@@ -88,9 +88,9 @@ edition** (Claude Desktop / Claude Code) or the CLI.
|
|
|
88
88
|
|
|
89
89
|
## 5. Config (secrets)
|
|
90
90
|
|
|
91
|
-
- Payment/auth secrets → add the vault items with `
|
|
91
|
+
- Payment/auth secrets → add the vault items with `grid_secrets` (e.g.
|
|
92
92
|
`stripe-live-key`, `stripe-webhook-secret`, `auth-provider-key`) BEFORE plug so
|
|
93
|
-
the `vault:` mappings resolve. Non-secret config → `
|
|
93
|
+
the `vault:` mappings resolve. Non-secret config → `grid_env`.
|
|
94
94
|
- Do **NOT** set the DB connection vars yourself (`DATABASE_MONGODB_URL` / legacy
|
|
95
95
|
`MONGODB_URL`) — the grid injects them.
|
|
96
96
|
|
|
@@ -102,9 +102,9 @@ require it.
|
|
|
102
102
|
|
|
103
103
|
## 7. Deploy (async)
|
|
104
104
|
|
|
105
|
-
Deploy the folder with `
|
|
105
|
+
Deploy the folder with `grid_plug`. A **runtime deploy is ASYNC**: the first
|
|
106
106
|
response is `status: "building"`, NOT a live URL yet.
|
|
107
|
-
- Poll `
|
|
107
|
+
- Poll `grid_status` (or the returned poll_url) until the entity is live.
|
|
108
108
|
- Surface a liveness signal while it builds — never a bare silent wait.
|
|
109
109
|
- Only once it is live, return the deployed app URL (NOT the build/log link).
|
|
110
110
|
|
|
@@ -4,7 +4,7 @@ when: waitlist, coming soon, early access, join the list, launch page, sign-up t
|
|
|
4
4
|
needs: none
|
|
5
5
|
deploy: inspiration
|
|
6
6
|
editions: all
|
|
7
|
-
capabilities_note: static — no infrastructure. The email form posts to a configurable mailto/external endpoint; it does NOT store signups. Publishes as an inspiration (instant, works on hosted) via
|
|
7
|
+
capabilities_note: static — no infrastructure. The email form posts to a configurable mailto/external endpoint; it does NOT store signups. Publishes as an inspiration (instant, works on hosted) via grid_drop.
|
|
8
8
|
summary: Fetch the waitlist template, fill it with the user's launch copy, wire the form to a mailto or external endpoint, deploy it, and return the live share URL.
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -22,7 +22,7 @@ NOT store signups anywhere on CloudGrid. To actually **store** waitlist signups
|
|
|
22
22
|
(`needs: { database: true }`) — that is a CRUD app, coming in the crud-app
|
|
23
23
|
archetype (Wave 1b). Do not claim this static page persists data.
|
|
24
24
|
|
|
25
|
-
1. **Fetch the template.** Call `
|
|
25
|
+
1. **Fetch the template.** Call `grid_fetch("template", "waitlist")` to load
|
|
26
26
|
the self-contained HTML waitlist page (hero, email form, social-proof counter).
|
|
27
27
|
2. **Fill the template.** Replace the placeholders with the user's content:
|
|
28
28
|
- The product name, coming-soon headline, and subheadline.
|
|
@@ -33,7 +33,7 @@ archetype (Wave 1b). Do not claim this static page persists data.
|
|
|
33
33
|
stylesheets, fonts, or large embedded media.
|
|
34
34
|
3. **Deploy.** Deploy the filled HTML:
|
|
35
35
|
- Hosted MCP edition: call the drop tool with the HTML.
|
|
36
|
-
- Local MCP / CLI edition: write the HTML to a file and run `
|
|
36
|
+
- Local MCP / CLI edition: write the HTML to a file and run `grid plug`.
|
|
37
37
|
It is an inspiration and deploys synchronously, so you get a URL right away.
|
|
38
38
|
4. **Return the live share URL.** For revisions, re-deploy with the entity id
|
|
39
39
|
from the first deploy — it updates the same share URL. If the user needs
|
|
@@ -4,7 +4,7 @@ when: calculator, converter, generator, timer, quiz, interactive tool, mini-app,
|
|
|
4
4
|
needs: none
|
|
5
5
|
deploy: inspiration
|
|
6
6
|
editions: all
|
|
7
|
-
capabilities_note: static — no infrastructure, state lives only in memory. Publishes as an inspiration (instant, works on hosted) via
|
|
7
|
+
capabilities_note: static — no infrastructure, state lives only in memory. Publishes as an inspiration (instant, works on hosted) via grid_drop.
|
|
8
8
|
summary: Fetch the web-app template, adapt its markup and inline JS to the user's tool, deploy it, and return the live share URL.
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -14,9 +14,9 @@ Detect the intent ("build me a web app / tool / calculator that does X") and
|
|
|
14
14
|
follow this recipe. Do not ask setup questions first; use sensible defaults and
|
|
15
15
|
build.
|
|
16
16
|
|
|
17
|
-
1. **Fetch the template.** Call `
|
|
17
|
+
1. **Fetch the template.** Call `grid_fetch("template", "web-app")` to load
|
|
18
18
|
the self-contained interactive HTML app template.
|
|
19
|
-
2. **(Optional) Fetch the example.** Call `
|
|
19
|
+
2. **(Optional) Fetch the example.** Call `grid_fetch("example", "web-app")`
|
|
20
20
|
to see a real working tool as a reference for structure and inline logic.
|
|
21
21
|
3. **Adapt the template.** Rework the markup and inline JavaScript into the tool
|
|
22
22
|
the user asked for:
|
|
@@ -27,7 +27,7 @@ build.
|
|
|
27
27
|
stylesheets, fonts, or CDNs — inline everything.
|
|
28
28
|
4. **Deploy.** Deploy the filled HTML:
|
|
29
29
|
- Hosted MCP edition: call the drop tool with the HTML.
|
|
30
|
-
- Local MCP / CLI edition: write the HTML to a file and run `
|
|
30
|
+
- Local MCP / CLI edition: write the HTML to a file and run `grid plug`.
|
|
31
31
|
A web app is an inspiration and deploys synchronously, so you get a URL
|
|
32
32
|
right away.
|
|
33
33
|
5. **Return the live share URL.** Give the user the URL that serves the app.
|
package/src/docs.js
CHANGED
|
@@ -39,18 +39,18 @@ function ok(text) {
|
|
|
39
39
|
function createDocsServer() {
|
|
40
40
|
const server = new McpServer({ name: "cloudgrid-docs", version });
|
|
41
41
|
|
|
42
|
-
// Naming cleanup (spec §6): the docs tools move to the
|
|
42
|
+
// Naming cleanup (spec §6): the docs tools move to the grid_* family. Both
|
|
43
43
|
// legacy names stay registered as deprecated aliases (same handler) so nothing
|
|
44
44
|
// breaks mid-migration; aliases are removed in a later major.
|
|
45
|
-
// search_cloudgrid_documentation →
|
|
46
|
-
// cloudgrid_quickstart_guide →
|
|
45
|
+
// search_cloudgrid_documentation → grid_search_docs
|
|
46
|
+
// cloudgrid_quickstart_guide → grid_quickstart
|
|
47
47
|
const dual = (name, alias, description, schema, handler) => {
|
|
48
48
|
server.tool(name, description, schema, handler);
|
|
49
49
|
server.tool(alias, `(deprecated: use ${name}) ${description}`, schema, handler);
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
dual(
|
|
53
|
-
"
|
|
53
|
+
"grid_search_docs",
|
|
54
54
|
"search_cloudgrid_documentation",
|
|
55
55
|
"Search CloudGrid documentation — guides, tutorials, CLI reference, MCP setup, and skill descriptions. Returns the most relevant doc chunks with title, snippet, and source path.",
|
|
56
56
|
{
|
|
@@ -75,7 +75,7 @@ function createDocsServer() {
|
|
|
75
75
|
);
|
|
76
76
|
|
|
77
77
|
dual(
|
|
78
|
-
"
|
|
78
|
+
"grid_quickstart",
|
|
79
79
|
"cloudgrid_quickstart_guide",
|
|
80
80
|
"Get the CloudGrid quickstart guide — the canonical build-and-ship loop from scaffold to deploy to feedback.",
|
|
81
81
|
{},
|
package/src/index.js
CHANGED
|
@@ -32,7 +32,7 @@ const server = new McpServer({ name: "cloudgrid-mcp", version });
|
|
|
32
32
|
registerTools(server, ctx);
|
|
33
33
|
|
|
34
34
|
// Capture the calling agent's clientInfo (name+version) once the MCP handshake
|
|
35
|
-
// completes, so
|
|
35
|
+
// completes, so grid_report can attribute the report's origin (which agent).
|
|
36
36
|
// getClientVersion() is populated by the SDK from the initialize request's
|
|
37
37
|
// clientInfo. Never fatal — a missing client just falls back to "unknown".
|
|
38
38
|
server.server.oninitialized = () => {
|