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.
Files changed (2) hide show
  1. package/dist/index.js +19 -1
  2. 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.3",
4
- "description": "MCP server for Plyo Undo and Publish for everything your AI builds. Save checkpoints, publish, restore.",
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"