@prontosite/mcp 0.10.0 → 0.10.1

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 (3) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/index.mjs +14 -4
  3. package/package.json +6 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  Alle nennenswerten Änderungen am MCP-Server für ProntoSite. Der Server ist ein dünner Client um die
4
4
  ProntoSite Deploy-API; die eigentliche Logik lebt serverseitig.
5
5
 
6
+ ## 0.10.1 – 2026-10-03
7
+
8
+ - **Fix:** In der `account_create`-Beschreibung beendeten gerade Anführungszeichen (`"`) innerhalb der
9
+ deutschen Quotes `„…"` den JS-String vorzeitig → `SyntaxError` beim Start (0.10.0 war nicht ladbar).
10
+ Alle Tool-Beschreibungen auf typografische `„…“` umgestellt.
11
+ - **Schutz gegen Wiederholung:** `prepublishOnly` (= `npm run check` + `npm run smoke`) prüft vor jedem
12
+ Publish `node --check index.mjs api.mjs` **und** einen echten Import-Smoke (`smoke.mjs` lädt `index.mjs`
13
+ komplett – alle `server.tool`-Registrierungen laufen – ohne den stdio-Server zu starten, Dummy-Env).
14
+ Derselbe Smoke läuft in `npm test` des Hauptprojekts. `index.mjs` startet den Server jetzt nur noch bei
15
+ Direktausführung (Main-Guard), damit der Import nicht blockiert.
16
+
6
17
  ## 0.10.0 – 2026-10-03
7
18
 
8
19
  - **Neu: `account_create`** (schreibend, nur mit Betreuer-Token: admin/partner/agentur) – legt ein neues
package/index.mjs CHANGED
@@ -8,6 +8,8 @@
8
8
  * Multi-Site (Betreuer): trägt die Config eine `sites`-Map, adressiert jedes Tool per `site`-Parameter die
9
9
  * jeweilige Website (eigenes Token je Site). Arbeitsweise: EIN Chat je Kunde. `sites_list` zeigt alle Sites.
10
10
  */
11
+ import { fileURLToPath } from "node:url";
12
+ import { realpathSync } from "node:fs";
11
13
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
12
14
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
13
15
  import { z } from "zod";
@@ -57,9 +59,9 @@ server.tool(
57
59
  server.tool(
58
60
  "account_create",
59
61
  "SCHREIBEND (nur mit Betreuer-Token: admin/partner/agentur): Legt ein NEUES Kundenkonto an – der Dashboard-"
60
- + "Weg „Kunde anlegen". Nutze dieses Tool, BEVOR du eine Website importierst, wenn es für den Kunden noch "
62
+ + "Weg „Kunde anlegen“. Nutze dieses Tool, BEVOR du eine Website importierst, wenn es für den Kunden noch "
61
63
  + "KEIN Konto gibt (z. B. sites_list zeigt den Kunden nicht, oder der Nutzer sagt „für Kunde X gibt es noch "
62
- + "kein Konto"). Erst Konto anlegen, dann mit der zurückgegebenen Konto-ID (k-…) per site_deploy und "
64
+ + "kein Konto“). Erst Konto anlegen, dann mit der zurückgegebenen Konto-ID (k-…) per site_deploy und "
63
65
  + "site=\"<k-id>:new\" die erste Website importieren. Richte KEIN site=new/Erst-Import ein, solange die "
64
66
  + "Konto-ID unbekannt ist – dann zuerst dieses Tool. Mit email wird ein Login-Konto angelegt und eine "
65
67
  + "Einladungs-Mail verschickt; ohne email ein verwaltetes Konto (ohne Login, Betrieb über den Betreuer). "
@@ -271,5 +273,13 @@ server.tool(
271
273
  }
272
274
  );
273
275
 
274
- const transport = new StdioServerTransport();
275
- await server.connect(transport);
276
+ // Den stdio-Server NUR starten, wenn diese Datei direkt ausgeführt wird (als MCP-Server / bin).
277
+ // Beim bloßen Importieren (Smoke-Test / Tests) NICHT verbinden – sonst würde der Import auf stdin blockieren.
278
+ // So lädt der Import die Datei komplett (inkl. aller server.tool-Registrierungen → fängt Syntax-/Beschreibungs-
279
+ // fehler) ohne den Server zu starten.
280
+ let isMain = false;
281
+ try { isMain = !!process.argv[1] && realpathSync(process.argv[1]) === fileURLToPath(import.meta.url); } catch { /* argv[1] fehlt (node -e) → kein Main */ }
282
+ if (isMain) {
283
+ const transport = new StdioServerTransport();
284
+ await server.connect(transport);
285
+ }
package/package.json CHANGED
@@ -1,12 +1,17 @@
1
1
  {
2
2
  "name": "@prontosite/mcp",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "MCP-Server für ProntoSite – Website-Status, Export, Deploy und Veröffentlichen direkt aus einem KI-Assistenten (Claude Desktop). Dünner Client um die ProntoSite Deploy-API.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "prontosite-mcp": "index.mjs"
8
8
  },
9
9
  "main": "index.mjs",
10
+ "scripts": {
11
+ "check": "node --check index.mjs && node --check api.mjs",
12
+ "smoke": "node smoke.mjs",
13
+ "prepublishOnly": "npm run check && npm run smoke"
14
+ },
10
15
  "files": [
11
16
  "index.mjs",
12
17
  "api.mjs",