@prontosite/mcp 0.2.0 → 0.2.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.
- package/api.mjs +13 -2
- package/index.mjs +1 -1
- package/package.json +1 -1
package/api.mjs
CHANGED
|
@@ -48,8 +48,19 @@ const needToken = (token, ref) => {
|
|
|
48
48
|
export function resolveTarget(cfg, site) {
|
|
49
49
|
const want = site || cfg.defaultSite || cfg.site || "active";
|
|
50
50
|
if (cfg.sites) {
|
|
51
|
-
const
|
|
52
|
-
|
|
51
|
+
const keys = Object.keys(cfg.sites);
|
|
52
|
+
const lc = String(want).toLowerCase();
|
|
53
|
+
// Auflösung ZUERST als PROFIL: exakter Label-Schlüssel → Label case-insensitiv → per entry.site (stabile
|
|
54
|
+
// ID) oder entry.slug. Erst so wird das richtige Token je Site gewählt.
|
|
55
|
+
const key = (cfg.sites[want] && want)
|
|
56
|
+
|| keys.find(k => k.toLowerCase() === lc)
|
|
57
|
+
|| keys.find(k => cfg.sites[k] && (cfg.sites[k].site === want || cfg.sites[k].slug === want));
|
|
58
|
+
if (key) { const e = cfg.sites[key]; return { token: needToken(e.token, key), slug: e.site || e.slug || key }; }
|
|
59
|
+
// WICHTIG (Befund Nick): In einer Multi-Site-Config darf ein UNBEKANNTES Label NICHT still auf das
|
|
60
|
+
// Default-/Einzel-Token (cfg.token) zurückfallen – sonst wird das Label als Website im FALSCHEN Token
|
|
61
|
+
// gesucht (z. B. „praxis-semra-demo" im Rosin-Token). Klar melden statt still das falsche Token nehmen.
|
|
62
|
+
throw new Error(`„${want}" ist kein Profil in deiner sites-Map. Verfügbar: ${keys.join(", ")}. `
|
|
63
|
+
+ `Adressiere per Label oder stabiler Site-ID (s-…); sites_list zeigt alle.`);
|
|
53
64
|
}
|
|
54
65
|
return { token: needToken(cfg.token, want), slug: want };
|
|
55
66
|
}
|
package/index.mjs
CHANGED
|
@@ -14,7 +14,7 @@ import { z } from "zod";
|
|
|
14
14
|
import { loadConfig, apiStatus, apiExport, apiDeploy, apiPublish, sitesList } from "./api.mjs";
|
|
15
15
|
|
|
16
16
|
const cfg = loadConfig();
|
|
17
|
-
const server = new McpServer({ name: "prontosite", version: "0.2.
|
|
17
|
+
const server = new McpServer({ name: "prontosite", version: "0.2.1" });
|
|
18
18
|
const asText = obj => ({ content: [{ type: "text", text: JSON.stringify(obj, null, 2) }] });
|
|
19
19
|
const asError = e => ({ isError: true, content: [{ type: "text", text: "Fehler: " + (e?.message || String(e)) }] });
|
|
20
20
|
const SITE_DESC = "Website-Slug (z. B. 'mas-monti'). Ohne Angabe die Standard-Site der Config. Bei Betreuer-"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prontosite/mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.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": { "prontosite-mcp": "index.mjs" },
|