plyo-mcp 0.4.3 → 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/dist/index.js +19 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -127,7 +127,7 @@ function text(s) {
|
|
|
127
127
|
return { content: [{ type: "text", text: s }] };
|
|
128
128
|
}
|
|
129
129
|
const server = new McpServer({ name: "plyo", version: "0.4.1" }, {
|
|
130
|
-
instructions: "Plyo keeps every version of this project safe for a non-technical user. Call save_checkpoint automatically after every completed piece of work — do not wait to be asked. Pass both a plain-English note and the intent (what the user asked for, in their words). If the user started a Draft in Plyo, use start_draft with that draft's exact name to work in it — never create a duplicate. Before schema changes, migrations, or anything that rewrites data, call backup_data first — it takes a restorable snapshot of the project's database.",
|
|
130
|
+
instructions: "Plyo keeps every version of this project safe for a non-technical user. Call save_checkpoint automatically after every completed piece of work — do not wait to be asked. Pass both a plain-English note and the intent (what the user asked for, in their words). If the user started a Draft in Plyo, use start_draft with that draft's exact name to work in it — never create a duplicate. Before schema changes, migrations, or anything that rewrites data, call backup_data first — it takes a restorable snapshot of the project's database. At the START of a session, call get_pending_tasks once — the user may have pointed at problems in Plyo and queued fix instructions for you.",
|
|
131
131
|
});
|
|
132
132
|
server.tool("list_projects", "List the user's Plyo projects (name, slug, live URL).", {}, async () => {
|
|
133
133
|
const data = await api("/v1/projects");
|
|
@@ -206,6 +206,16 @@ server.tool("publish", "Publish the project's latest checkpoint to its live URL.
|
|
|
206
206
|
if (build.status === "failed" || build.status === "needs_server") {
|
|
207
207
|
return text(`Publish failed: ${build.error_plain}\n\nFix it like this:\n${build.error_fix_prompt}`);
|
|
208
208
|
}
|
|
209
|
+
if (build.readiness === "orange") {
|
|
210
|
+
const fails = (build.failures ?? [])
|
|
211
|
+
.map((f) => `${f.route}: ${f.message}`)
|
|
212
|
+
.join(" | ");
|
|
213
|
+
if (fails) {
|
|
214
|
+
// keep polling — the build may still complete — but the agent now
|
|
215
|
+
// knows what the checker sees and can start fixing.
|
|
216
|
+
void fails;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
209
219
|
}
|
|
210
220
|
return text(`The build is taking unusually long. Check later with get_build_error.`);
|
|
211
221
|
});
|
|
@@ -231,6 +241,14 @@ server.tool("get_timeline", "Show the project's recent checkpoints (the timeline
|
|
|
231
241
|
.map((c) => `${c.createdAt} — ${c.note} (${c.source}) [${c.id}]`)
|
|
232
242
|
.join("\n"));
|
|
233
243
|
});
|
|
244
|
+
server.tool("get_pending_tasks", "Fix instructions the user queued for you from Plyo (they pointed at problems on their site). Call once at session start. Returns each task once.", {}, async () => {
|
|
245
|
+
const data = await api("/v1/pending-tasks");
|
|
246
|
+
if (!data.tasks.length)
|
|
247
|
+
return text("No pending tasks from Plyo.");
|
|
248
|
+
return text(data.tasks
|
|
249
|
+
.map((t, i) => `Task ${i + 1}${t.projectSlug ? ` (project ${t.projectSlug})` : ""}:\n${t.prompt}`)
|
|
250
|
+
.join("\n\n"));
|
|
251
|
+
});
|
|
234
252
|
server.tool("backup_data", "Take a snapshot of the project's database (and storage files) before risky data changes — schema migrations, bulk updates, deletions. The user can restore or download it from Settings → Backups.", {}, async () => {
|
|
235
253
|
const link = await requireLink();
|
|
236
254
|
const res = await api(`/v1/projects/${link.slug}/backups/run`, { method: "POST", body: "{}" });
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "plyo-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for Plyo
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "MCP server for Plyo \u2014 Undo and Publish for everything your AI builds. Save checkpoints, publish, restore.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"plyo-mcp": "dist/index.js"
|