@mgsoftwarebv/mg-dashboard-mcp 7.4.12 → 7.4.13

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 +20 -21
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -9988,7 +9988,9 @@ var RAW_JSON_TOOLS = /* @__PURE__ */ new Set([
9988
9988
  "save_content_quality_run",
9989
9989
  "link_content_pack_to_ticket",
9990
9990
  "managed-site",
9991
- "content-sync"
9991
+ "content-sync",
9992
+ // Skill registry metadata only (no file bodies) — must stay valid JSON.
9993
+ "cursor-skill"
9992
9994
  ]);
9993
9995
  var TOOL_CACHE_TTL_MS = {
9994
9996
  "list-servers": 6e4,
@@ -12800,17 +12802,17 @@ var TOOLS = [
12800
12802
  required: ["project", "prompt"]
12801
12803
  }
12802
12804
  },
12803
- // ----- Shared Cursor skills (pull only; publish from mg-dashboard pack script) -----
12805
+ // ----- Shared Cursor skills (metadata only; install via downloads ZIP) -----
12804
12806
  {
12805
12807
  name: "cursor-skill",
12806
- description: "Shared Cursor skill registry (pull only \u2014 publish from mg-dashboard via pack-and-publish). Actions: list (all slugs+versions), status (compare localVersion to tip), pull (return file map; agent MUST write files under .cursor/skills/<slug>/). No push from other repos.",
12808
+ description: 'Shared Cursor skill registry (metadata only \u2014 never returns file bodies; MCP truncates large text). Actions: list (slugs+versions), status (localVersion vs tip), pull (install pointer only). To install bytes: GET https://dashboard.mgsoftware.nl/api/downloads/versions.txt (skills/<slug>.zip=N) then GET \u2026/api/downloads/skills/<slug>.zip and expand into .cursor/skills/<slug>/. Publish from mg-dashboard: bun scripts/skills/pack-and-publish.ts --slug <slug> --message "\u2026". No push via this tool.',
12807
12809
  inputSchema: {
12808
12810
  type: "object",
12809
12811
  properties: {
12810
12812
  action: {
12811
12813
  type: "string",
12812
12814
  enum: ["list", "status", "pull"],
12813
- description: "list = registry overview; status = local vs remote; pull = download tip (or version) as files"
12815
+ description: "list = registry overview; status = local vs remote; pull = tip metadata + installCommand (no files)"
12814
12816
  },
12815
12817
  slug: {
12816
12818
  type: "string",
@@ -12831,7 +12833,7 @@ var TOOLS = [
12831
12833
  // ----- Trigger.dev -----
12832
12834
  ...TRIGGER_TOOLS
12833
12835
  ];
12834
- var MCP_VERSION = "7.4.12";
12836
+ var MCP_VERSION = "7.4.13";
12835
12837
  async function handleListTools() {
12836
12838
  if (!authContext) return { tools: TOOLS };
12837
12839
  const allowedTools = authContext.allowedTools;
@@ -16281,7 +16283,7 @@ ${lines.join("\n")}`
16281
16283
  type: "text",
16282
16284
  text: `${lines.join("\n")}
16283
16285
 
16284
- Pull: cursor-skill action=pull slug=\u2026 (write files to .cursor/skills/<slug>/).`
16286
+ Install: GET https://dashboard.mgsoftware.nl/api/downloads/versions.txt then \u2026/skills/<slug>.zip. Metadata: cursor-skill action=pull slug=\u2026`
16285
16287
  }
16286
16288
  ]
16287
16289
  };
@@ -16339,7 +16341,7 @@ Pull: cursor-skill action=pull slug=\u2026 (write files to .cursor/skills/<slug>
16339
16341
  title: tip.title,
16340
16342
  localVersion,
16341
16343
  remoteVersion,
16342
- next: state === "behind" ? `cursor-skill action=pull slug=${slug}` : "No pull needed"
16344
+ next: state === "behind" ? `GET https://dashboard.mgsoftware.nl/api/downloads/skills/${slug}.zip \u2192 expand into .cursor/skills/${slug}/` : "No pull needed"
16343
16345
  },
16344
16346
  null,
16345
16347
  2
@@ -16367,7 +16369,7 @@ Pull: cursor-skill action=pull slug=\u2026 (write files to .cursor/skills/<slug>
16367
16369
  }
16368
16370
  const wantVersion = typeof a.version === "number" && Number.isFinite(a.version) ? Math.floor(a.version) : Number(skill.current_version);
16369
16371
  const revisions = await db.execute(sql`
16370
- SELECT version, message, files, created_at
16372
+ SELECT version, message, created_at
16371
16373
  FROM cursor_skill_revision
16372
16374
  WHERE skill_id = ${skill.id} AND version = ${wantVersion}
16373
16375
  LIMIT 1
@@ -16383,18 +16385,10 @@ Pull: cursor-skill action=pull slug=\u2026 (write files to .cursor/skills/<slug>
16383
16385
  ]
16384
16386
  };
16385
16387
  }
16386
- const files = typeof rev.files === "object" && rev.files !== null ? { ...rev.files } : JSON.parse(String(rev.files));
16387
- files[".mg-skill.json"] = JSON.stringify(
16388
- {
16389
- id: slug,
16390
- version: rev.version,
16391
- pulledAt: (/* @__PURE__ */ new Date()).toISOString(),
16392
- requires: { dashboardApi: dashboardBaseUrl }
16393
- },
16394
- null,
16395
- 2
16396
- ) + "\n";
16397
16388
  const installPath = `.cursor/skills/${slug}`;
16389
+ const zipDownloadsUrl = `${dashboardBaseUrl}/api/downloads/skills/${slug}.zip`;
16390
+ const versionsUrl = `${dashboardBaseUrl}/api/downloads/versions.txt`;
16391
+ const installCommand = `Invoke-WebRequest '${zipDownloadsUrl}' -OutFile skill.zip; Expand into ${installPath}/ (check ${versionsUrl} for tip version)`;
16398
16392
  return {
16399
16393
  content: [
16400
16394
  {
@@ -16405,9 +16399,14 @@ Pull: cursor-skill action=pull slug=\u2026 (write files to .cursor/skills/<slug>
16405
16399
  title: skill.title,
16406
16400
  version: rev.version,
16407
16401
  message: rev.message,
16402
+ createdAt: rev.created_at,
16408
16403
  installPath,
16409
- instruction: `Write every entry in files to ${installPath}/<path> (create dirs as needed, overwrite). Then the skill is ready. Do not commit unless the user asks.`,
16410
- files
16404
+ zipApiPath: `/api/cursor-skill/${slug}/zip`,
16405
+ zipApiUrl: `${dashboardBaseUrl}/api/cursor-skill/${slug}/zip`,
16406
+ zipDownloadsUrl,
16407
+ versionsUrl,
16408
+ installCommand,
16409
+ instruction: `Do NOT expect file bodies from this tool. Download ZIP from \`${zipDownloadsUrl}\` (or compare tip via \`${versionsUrl}\` line skills/${slug}.zip=N) into ${installPath}/. Then re-read SKILL.md from disk. Do not commit unless the user asks. Publish: bun scripts/skills/pack-and-publish.ts --slug <slug> --message "\u2026".`
16411
16410
  },
16412
16411
  null,
16413
16412
  2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mgsoftwarebv/mg-dashboard-mcp",
3
- "version": "7.4.12",
3
+ "version": "7.4.13",
4
4
  "description": "MCP Server for MG Dashboard - SSH, SFTP, Docker, domains, DNS, and environment config tools for Cursor",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",