@showly/mcp-server 0.4.6 → 0.4.8
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/cli.d.ts +6 -6
- package/dist/cli.js +19 -24
- package/manifest.json +1 -1
- package/package.json +3 -3
package/dist/cli.d.ts
CHANGED
|
@@ -131,14 +131,14 @@ export declare function buildLoginPrompt(input: {
|
|
|
131
131
|
expiresAt: Date;
|
|
132
132
|
}): string;
|
|
133
133
|
/**
|
|
134
|
-
*
|
|
134
|
+
* Process-lifecycle guidance for agents that launched the device flow.
|
|
135
135
|
*
|
|
136
136
|
* The human-facing approval block is intentionally host-neutral and is often
|
|
137
|
-
* relayed verbatim. Remote agent hosts need one additional
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
137
|
+
* relayed verbatim. Remote agent hosts need one additional status note: keep
|
|
138
|
+
* ownership of the foreground process and poll it until it exits. Without
|
|
139
|
+
* this, an agent can accurately relay the code, end its turn, and strand the
|
|
140
|
+
* post-approval work even though the CLI itself later receives and stores the
|
|
141
|
+
* credential successfully.
|
|
142
142
|
*/
|
|
143
143
|
export declare function buildRemoteAgentWaitInstruction(target: LoginTarget): string | null;
|
|
144
144
|
/** Claude Code reads a `headers` map on an http MCP server entry. */
|
package/dist/cli.js
CHANGED
|
@@ -455,26 +455,23 @@ export function buildLoginPrompt(input) {
|
|
|
455
455
|
].join("\n");
|
|
456
456
|
}
|
|
457
457
|
/**
|
|
458
|
-
*
|
|
458
|
+
* Process-lifecycle guidance for agents that launched the device flow.
|
|
459
459
|
*
|
|
460
460
|
* The human-facing approval block is intentionally host-neutral and is often
|
|
461
|
-
* relayed verbatim. Remote agent hosts need one additional
|
|
462
|
-
*
|
|
463
|
-
*
|
|
464
|
-
*
|
|
465
|
-
*
|
|
461
|
+
* relayed verbatim. Remote agent hosts need one additional status note: keep
|
|
462
|
+
* ownership of the foreground process and poll it until it exits. Without
|
|
463
|
+
* this, an agent can accurately relay the code, end its turn, and strand the
|
|
464
|
+
* post-approval work even though the CLI itself later receives and stores the
|
|
465
|
+
* credential successfully.
|
|
466
466
|
*/
|
|
467
467
|
export function buildRemoteAgentWaitInstruction(target) {
|
|
468
468
|
if (target !== "openclaw" && target !== "hermes")
|
|
469
469
|
return null;
|
|
470
470
|
return [
|
|
471
|
-
"[
|
|
472
|
-
"
|
|
473
|
-
"
|
|
474
|
-
"Do not
|
|
475
|
-
"After relaying the approval URL and code, your next action in the same turn MUST be another wait/poll call on this handle. A text-only response such as `I'll keep an eye on it` ends the workflow and is a failure.",
|
|
476
|
-
"Do not ask the human to message you after approval, and do not start another login while this process is alive.",
|
|
477
|
-
"Only a terminal exit from this login command permits a final response.",
|
|
471
|
+
"[SHOWLY LOGIN PROCESS]",
|
|
472
|
+
"Keep this foreground process/session handle attached.",
|
|
473
|
+
"After showing the approval URL and code, wait/poll this same handle until the command exits. No new output means it is still waiting.",
|
|
474
|
+
"Do not start another login while this one is active.",
|
|
478
475
|
].join("\n");
|
|
479
476
|
}
|
|
480
477
|
/** Claude Code reads a `headers` map on an http MCP server entry. */
|
|
@@ -1131,7 +1128,11 @@ export function buildLoginOutput(result, opts = {}) {
|
|
|
1131
1128
|
if (opts.printToken)
|
|
1132
1129
|
return [{ stream: "out", line: result.token }];
|
|
1133
1130
|
const lines = [];
|
|
1134
|
-
|
|
1131
|
+
const isManagedRemoteTarget = result.target === "openclaw" || result.target === "hermes";
|
|
1132
|
+
if (isManagedRemoteTarget) {
|
|
1133
|
+
lines.push({ stream: "err", line: "Connected." });
|
|
1134
|
+
}
|
|
1135
|
+
else if (result.wrote) {
|
|
1135
1136
|
const written = [result.path, result.credentialPath]
|
|
1136
1137
|
.filter((path) => Boolean(path))
|
|
1137
1138
|
.join(" and ");
|
|
@@ -1173,24 +1174,18 @@ export function buildLoginOutput(result, opts = {}) {
|
|
|
1173
1174
|
lines.push({
|
|
1174
1175
|
stream: "err",
|
|
1175
1176
|
line: [
|
|
1176
|
-
"
|
|
1177
|
-
"
|
|
1178
|
-
"If the host already ended the task while approval was pending, use one fresh task as a fallback; do not repeat login.",
|
|
1177
|
+
"Next: run `openclaw mcp reload` once.",
|
|
1178
|
+
"If this task still does not show Showly tools, start one fresh task before using Showly.",
|
|
1179
1179
|
].join("\n"),
|
|
1180
1180
|
});
|
|
1181
1181
|
}
|
|
1182
1182
|
if (result.target === "hermes") {
|
|
1183
1183
|
lines.push({
|
|
1184
1184
|
stream: "err",
|
|
1185
|
-
line:
|
|
1186
|
-
"[AGENT EXECUTOR - REQUIRED] Activate the live Hermes MCP inventory, then verify with native `mcp__showly__list_projects` and `mcp__showly__list_sites` calls.",
|
|
1187
|
-
"Use `/reload-mcp` only when the host exposes it as a real control command. Do not tell the human to run it and do not send `/reload-mcp` as an ordinary chat/model prompt.",
|
|
1188
|
-
"On managed MyClaw, restart the Hermes instance/container once with the host control, open a fresh task, and make the native calls there. A new task before that restart can reuse the stale worker. Do not repeat login.",
|
|
1189
|
-
"`hermes mcp test` or raw JSON-RPC proves the credential and server, not that the running agent loaded the tools.",
|
|
1190
|
-
].join("\n"),
|
|
1185
|
+
line: "Next: restart Hermes once, then start a fresh task before using Showly tools.",
|
|
1191
1186
|
});
|
|
1192
1187
|
}
|
|
1193
|
-
if (result.expiresAt) {
|
|
1188
|
+
if (result.expiresAt && !isManagedRemoteTarget) {
|
|
1194
1189
|
lines.push({
|
|
1195
1190
|
stream: "err",
|
|
1196
1191
|
line: `This credential expires ${result.expiresAt.toISOString().slice(0, 10)}. Showly issues no refresh token, so run \`npx @showly/mcp-server login\` again before then — it needs a human approval each time.`,
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://showly.ai/schemas/skill-manifest-v1.json",
|
|
3
3
|
"name": "showly",
|
|
4
4
|
"displayName": "Showly",
|
|
5
|
-
"version": "0.4.
|
|
5
|
+
"version": "0.4.8",
|
|
6
6
|
"description": "Deploy and manage Showly sites from inside Claude Code / Codex.",
|
|
7
7
|
"homepage": "https://showly.ai/docs/mcp/overview",
|
|
8
8
|
"publisher": "Showly",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@showly/mcp-server",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.8",
|
|
4
4
|
"description": "Connect Claude Code / Codex to the Showly MCP server — preview and deploy sites from your agent.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"claude-code-skill": {
|
|
54
54
|
"name": "showly",
|
|
55
|
-
"version": "0.4.
|
|
55
|
+
"version": "0.4.8",
|
|
56
56
|
"description": "Deploy and manage Showly sites from inside Claude Code.",
|
|
57
57
|
"mcp-server": {
|
|
58
58
|
"url-env": "SHOWLY_MCP_URL",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
},
|
|
66
66
|
"codex-plugin": {
|
|
67
67
|
"name": "showly",
|
|
68
|
-
"version": "0.4.
|
|
68
|
+
"version": "0.4.8",
|
|
69
69
|
"type": "mcp-server",
|
|
70
70
|
"manifest": "manifest.json"
|
|
71
71
|
},
|