lattice-mcp 1.3.0 → 1.4.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/AGENTS.md +14 -0
- package/index.js +12 -5
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -249,6 +249,20 @@ one. `verify.mjs` gained a tripwire asserting `sanitise()` is still wired into `
|
|
|
249
249
|
defaults to on — unwiring that single call is a silent, total regression that no other check
|
|
250
250
|
would notice.
|
|
251
251
|
|
|
252
|
+
**1.4.0** exposes parameters added to `lattice-api` alongside the managed-database overhaul. No
|
|
253
|
+
tool-count change.
|
|
254
|
+
|
|
255
|
+
`lattice_create_database_instance` gains `adopt_existing_volume`. It is off by default because a
|
|
256
|
+
reused data volume makes the engine skip initialisation and keep its previous credentials while the
|
|
257
|
+
API records freshly generated ones — the container reports healthy and nothing looks wrong until a
|
|
258
|
+
connection fails.
|
|
259
|
+
|
|
260
|
+
`lattice_update_api` and `lattice_update_web` gain `version` and `force`. The compose file
|
|
261
|
+
interpolates the image tag from an env var, so passing `version` writes it to the compose env file
|
|
262
|
+
and deploys or rolls back that tag in one call, persisting across restarts. Requesting a version
|
|
263
|
+
when the compose file does not interpolate the variable returns a 400 rather than silently
|
|
264
|
+
deploying the old image.
|
|
265
|
+
|
|
252
266
|
**Consolidations.** Where `lattice-api` exposes several paths served by one handler, this repo
|
|
253
267
|
exposes one tool with an enum rather than N tools. `lattice_database_action` covers
|
|
254
268
|
`/start`, `/stop`, `/restart` and `/remove`. Worker actions are the historical exception — they
|
package/index.js
CHANGED
|
@@ -221,7 +221,7 @@ function body(obj) {
|
|
|
221
221
|
|
|
222
222
|
const server = new McpServer({
|
|
223
223
|
name: "lattice",
|
|
224
|
-
version: "1.
|
|
224
|
+
version: "1.4.0",
|
|
225
225
|
});
|
|
226
226
|
|
|
227
227
|
// Overview
|
|
@@ -497,13 +497,19 @@ server.tool("lattice_start_all_worker", "Start all containers on a worker", {
|
|
|
497
497
|
});
|
|
498
498
|
|
|
499
499
|
// Dashboard controls
|
|
500
|
-
server.tool("lattice_update_api", "
|
|
501
|
-
|
|
500
|
+
server.tool("lattice_update_api", "Update the Lattice API container. Pass `version` to deploy or roll back to a specific tag; omit it to take whatever the compose file resolves to. Returns 'already up to date' without restarting when the resolved image is the one already running", {
|
|
501
|
+
version: z.string().optional().describe("Image tag to deploy, e.g. v1.3.21. Written to the compose env file, so it persists across restarts. Omit to follow the existing tag"),
|
|
502
|
+
force: z.boolean().optional().describe("Recreate even when the image is unchanged — use after an environment-variable change"),
|
|
503
|
+
}, async ({ version, force }) => {
|
|
504
|
+
const res = await api("POST", "/admin/update/api", force ? { force: "true" } : null, body({ version }));
|
|
502
505
|
return { content: text(res) };
|
|
503
506
|
});
|
|
504
507
|
|
|
505
|
-
server.tool("lattice_update_web", "
|
|
506
|
-
|
|
508
|
+
server.tool("lattice_update_web", "Update the Lattice web container. Pass `version` to deploy or roll back to a specific tag; omit it to take whatever the compose file resolves to", {
|
|
509
|
+
version: z.string().optional().describe("Image tag to deploy, e.g. v1.3.25. Written to the compose env file, so it persists across restarts. Omit to follow the existing tag"),
|
|
510
|
+
force: z.boolean().optional().describe("Recreate even when the image is unchanged"),
|
|
511
|
+
}, async ({ version, force }) => {
|
|
512
|
+
const res = await api("POST", "/admin/update/web", force ? { force: "true" } : null, body({ version }));
|
|
507
513
|
return { content: text(res) };
|
|
508
514
|
});
|
|
509
515
|
|
|
@@ -575,6 +581,7 @@ server.tool("lattice_create_database_instance", "Provision a database instance o
|
|
|
575
581
|
snapshot_schedule: z.string().optional().describe("Cron expression for automatic snapshots"),
|
|
576
582
|
retention_count: z.number().optional().describe("How many automatic snapshots to keep"),
|
|
577
583
|
backup_destination_id: z.number().optional().describe("Backup destination for snapshots"),
|
|
584
|
+
adopt_existing_volume: z.boolean().optional().describe("Reuse a leftover data volume of the same name. Off by default — the engine skips initialisation when its data directory is non-empty, so it keeps its OLD credentials while the API records the new ones, and nothing looks wrong until a connection fails"),
|
|
578
585
|
}, async (args) => {
|
|
579
586
|
const res = await api("POST", "/admin/database-instances", null, body(args));
|
|
580
587
|
return { content: text(res) };
|