@filiksyos/mcptoskill 0.2.9 → 0.3.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.
package/dist/index.js CHANGED
@@ -1,38 +1,27 @@
1
1
  #!/usr/bin/env node
2
2
  import { mkdir, writeFile, chmod, readFile, copyFile } from "node:fs/promises";
3
- import { join, resolve } from "node:path";
3
+ import { join } from "node:path";
4
4
  import { homedir } from "node:os";
5
5
  import { existsSync } from "node:fs";
6
6
  import { connectAndDiscover } from "./client.js";
7
7
  import { generate } from "./generator.js";
8
8
  import { getProviderByMcpUrl } from "./providers.js";
9
9
  import { runLocalOAuth } from "./oauth.js";
10
+ import { promptAuth, promptTarget, promptApiKey } from "./prompts.js";
10
11
  const OPENCLAW_DIR = join(homedir(), ".openclaw");
11
12
  const OPENCLAW_SKILLS_DIR = join(OPENCLAW_DIR, "skills");
12
13
  const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
13
- const MCPTOSKILL_TOKENS_DIR = join(OPENCLAW_DIR, "mcptoskill", "tokens");
14
+ const OPENCLAW_TOKENS_DIR = join(OPENCLAW_DIR, "mcptoskill", "tokens");
14
15
  const HERMES_SKILLS_DIR = join(homedir(), ".hermes", "skills", "mcptoskill");
16
+ const HERMES_TOKENS_DIR = join(homedir(), ".hermes", "mcptoskill", "tokens");
15
17
  function parseArgs(argv) {
16
18
  const args = argv.slice(2);
17
19
  const url = args.find((a) => !a.startsWith("--"));
18
20
  const nameFlag = args.find((a) => a.startsWith("--name="));
19
21
  const outFlag = args.find((a) => a.startsWith("--out="));
20
- const targetFlag = args.find((a) => a.startsWith("--target="));
21
22
  const skillKeyFlag = args.find((a) => a.startsWith("--skill-key="));
22
23
  const skillKeyIdx = args.findIndex((a) => a === "--skill-key");
23
24
  const headers = {};
24
- const targetRaw = targetFlag?.split("=")[1] ?? "openclaw";
25
- let target;
26
- if (targetRaw === "hermes") {
27
- target = "hermes";
28
- }
29
- else if (targetRaw === "openclaw") {
30
- target = "openclaw";
31
- }
32
- else {
33
- console.error(`Invalid --target: "${targetRaw}". Use openclaw or hermes.`);
34
- process.exit(1);
35
- }
36
25
  for (let i = 0; i < args.length; i++) {
37
26
  if (args[i] === "--header" && args[i + 1]) {
38
27
  const headerStr = args[++i];
@@ -50,17 +39,15 @@ function parseArgs(argv) {
50
39
  }
51
40
  }
52
41
  if (!url) {
53
- console.error("Usage: mcptoskill <mcp-server-url> [--target=openclaw|hermes] [--name=<skill-name>] [--out=<output-dir>] [--header \"Key: Value\"] [--skill-key=<key>]");
42
+ console.error("Usage: mcptoskill <mcp-server-url> [--name=<skill-name>] [--out=<output-dir>] [--header \"Key: Value\"] [--skill-key=<key>]");
54
43
  console.error("");
55
44
  console.error("Examples:");
56
45
  console.error(" mcptoskill https://mcp.context7.com/mcp");
57
- console.error(" mcptoskill https://mcp.context7.com/mcp --target=hermes");
58
- console.error(" mcptoskill https://mcp.notion.com/mcp # local OAuth, follow prompts");
46
+ console.error(" mcptoskill https://mcp.notion.com/mcp # prompts for auth & target");
59
47
  console.error(" mcptoskill https://mcp.context7.com/mcp --name=context7 --out=./skills");
60
48
  console.error(" mcptoskill https://mcp.supabase.com/mcp?project_ref=XXX --header \"Authorization: Bearer sbp_xxx\"");
61
49
  console.error("");
62
- console.error("OAuth (Notion, PostHog, Supabase): run without --header; CLI will prompt for local OAuth.");
63
- console.error("Also installs local ./scripts/<skill-name>.sh for integrations.");
50
+ console.error("Run without --header for interactive prompts: auth (OAuth/API key/none) and target (OpenClaw/Hermes/Both).");
64
51
  process.exit(1);
65
52
  }
66
53
  // Support both --skill-key=value and --skill-key value (from website copy)
@@ -68,14 +55,12 @@ function parseArgs(argv) {
68
55
  (skillKeyIdx >= 0 && args[skillKeyIdx + 1] && !args[skillKeyIdx + 1].startsWith("--")
69
56
  ? args[skillKeyIdx + 1]
70
57
  : undefined);
71
- const defaultOutDir = target === "hermes" ? HERMES_SKILLS_DIR : OPENCLAW_SKILLS_DIR;
72
58
  return {
73
59
  url,
74
60
  name: nameFlag?.split("=")[1],
75
- outDir: outFlag?.split("=")[1] ?? defaultOutDir,
61
+ outDir: outFlag?.split("=")[1],
76
62
  headers,
77
63
  skillKey,
78
- target,
79
64
  };
80
65
  }
81
66
  async function updateOpenClawConfig(skillName) {
@@ -105,9 +90,10 @@ async function updateOpenClawConfig(skillName) {
105
90
  config.skills = skills;
106
91
  await writeFile(OPENCLAW_CONFIG, JSON.stringify(config, null, 2) + "\n", "utf8");
107
92
  }
108
- async function saveTokenFile(skillName, data) {
109
- await mkdir(MCPTOSKILL_TOKENS_DIR, { recursive: true });
110
- const tokenFilePath = join(MCPTOSKILL_TOKENS_DIR, `${skillName}.json`);
93
+ async function saveTokenFile(skillName, data, target) {
94
+ const tokensDir = target === "hermes" ? HERMES_TOKENS_DIR : OPENCLAW_TOKENS_DIR;
95
+ await mkdir(tokensDir, { recursive: true });
96
+ const tokenFilePath = join(tokensDir, `${skillName}.json`);
111
97
  const now = Math.floor(Date.now() / 1000);
112
98
  const tokenData = {
113
99
  access_token: data.access_token,
@@ -128,10 +114,23 @@ async function saveTokenFile(skillName, data) {
128
114
  await chmod(tokenFilePath, 0o600);
129
115
  return tokenFilePath;
130
116
  }
117
+ function getTargets(choice) {
118
+ if (choice === "both")
119
+ return ["openclaw", "hermes"];
120
+ return [choice];
121
+ }
122
+ function getTokenPathForScript(skillName, target) {
123
+ return target === "hermes"
124
+ ? `$HOME/.hermes/mcptoskill/tokens/${skillName}.json`
125
+ : `$HOME/.openclaw/mcptoskill/tokens/${skillName}.json`;
126
+ }
131
127
  async function main() {
132
- const { url, name, outDir, headers, skillKey, target } = parseArgs(process.argv);
133
- let oauthTokenInfo;
134
- let tokenFilePath;
128
+ const { url, name, outDir: customOutDir, headers, skillKey } = parseArgs(process.argv);
129
+ const provider = getProviderByMcpUrl(url);
130
+ const hasOAuthProvider = !!provider;
131
+ const hasHeader = Object.keys(headers).length > 0;
132
+ let authChoice = "no_auth";
133
+ let oauthData;
135
134
  if (skillKey) {
136
135
  console.warn("--skill-key is deprecated. Use local OAuth instead (no flag needed).");
137
136
  const controller = new AbortController();
@@ -147,18 +146,7 @@ async function main() {
147
146
  const data = (await res.json());
148
147
  headers["Authorization"] = `Bearer ${data.access_token}`;
149
148
  if (data.refresh_token) {
150
- oauthTokenInfo = {
151
- access_token: data.access_token,
152
- refresh_token: data.refresh_token,
153
- expires_in: data.expires_in,
154
- token_endpoint: data.token_endpoint ?? "",
155
- client_id: data.client_id ?? "",
156
- mcp_oauth: data.mcp_oauth ?? false,
157
- token_encoding: data.token_encoding ?? "none",
158
- resource_url: data.resource_url ?? null,
159
- provider: data.provider,
160
- mcp_url: data.mcp_url,
161
- };
149
+ oauthData = data;
162
150
  }
163
151
  }
164
152
  catch {
@@ -169,43 +157,26 @@ async function main() {
169
157
  clearTimeout(timeout);
170
158
  }
171
159
  }
172
- let skillNameOverride;
173
- if (!skillKey && Object.keys(headers).length === 0) {
174
- const provider = getProviderByMcpUrl(url);
175
- if (target === "hermes" && provider) {
176
- console.error(`Hermes target does not support OAuth for ${provider.name}. Use --header "Authorization: Bearer YOUR_TOKEN" with a token, or --target=openclaw for OAuth.`);
177
- process.exit(1);
178
- }
179
- if (provider) {
160
+ else {
161
+ authChoice = await promptAuth(hasOAuthProvider, hasHeader);
162
+ if (authChoice === "oauth" && provider) {
180
163
  const oauthSkillName = name ?? `${provider.id}-mcp`;
181
- const oauthData = await runLocalOAuth(provider.id, oauthSkillName, url);
164
+ oauthData = await runLocalOAuth(provider.id, oauthSkillName, url);
182
165
  headers["Authorization"] = `Bearer ${oauthData.access_token}`;
183
- tokenFilePath = await saveTokenFile(oauthSkillName, oauthData);
184
- skillNameOverride = oauthSkillName;
185
- oauthTokenInfo = {
186
- access_token: oauthData.access_token,
187
- refresh_token: oauthData.refresh_token ?? "",
188
- expires_in: oauthData.expires_in,
189
- token_endpoint: oauthData.token_endpoint ?? "",
190
- client_id: oauthData.client_id ?? "",
191
- mcp_oauth: oauthData.mcp_oauth,
192
- token_encoding: oauthData.token_encoding,
193
- resource_url: oauthData.resource_url,
194
- provider: oauthData.provider,
195
- mcp_url: oauthData.mcp_url,
196
- tokenFilePath,
197
- ...(oauthData.client_secret && { client_secret: oauthData.client_secret }),
198
- };
199
- console.log(`✓ Token saved: ${tokenFilePath}`);
166
+ }
167
+ else if (authChoice === "api_key") {
168
+ const token = await promptApiKey();
169
+ headers["Authorization"] = `Bearer ${token}`;
200
170
  }
201
171
  }
172
+ const targetChoice = await promptTarget();
173
+ const targets = getTargets(targetChoice);
202
174
  console.log(`Connecting to ${url} ...`);
203
175
  const result = await connectAndDiscover(url, headers);
204
176
  console.log(`Found: ${result.serverInfo.name} v${result.serverInfo.version} — ${result.tools.length} tool(s)`);
205
177
  for (const t of result.tools) {
206
178
  console.log(` • ${t.name}: ${t.description.slice(0, 80)}${t.description.length > 80 ? "…" : ""}`);
207
179
  }
208
- // Prefer explicit --name; fallback to known-URL mapping (many hosted MCPs return generic names like "MCP TypeScript Server on Vercel")
209
180
  const knownNames = {
210
181
  "mcp.exa.ai": "exa",
211
182
  "exa.ai": "exa",
@@ -219,71 +190,105 @@ async function main() {
219
190
  }
220
191
  })();
221
192
  const slug = result.serverInfo.name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
193
+ const skillNameOverride = oauthData && provider ? (name ?? `${provider.id}-mcp`) : undefined;
222
194
  const skillName = skillNameOverride ?? name ?? (knownNames[host] ?? (host.endsWith(".exa.ai") ? "exa" : slug));
223
- if (oauthTokenInfo && !tokenFilePath) {
224
- tokenFilePath = await saveTokenFile(skillName, {
225
- ...oauthTokenInfo,
226
- workspace_name: null,
227
- });
228
- console.log(`✓ Token saved: ${tokenFilePath}`);
195
+ if (customOutDir) {
196
+ const target = targets[0];
197
+ const outDir = customOutDir;
198
+ const tokenFilePath = oauthData
199
+ ? await saveTokenFile(skillName, {
200
+ ...oauthData,
201
+ workspace_name: oauthData.workspace_name ?? null,
202
+ }, target)
203
+ : undefined;
204
+ const oauthTokenInfo = oauthData
205
+ ? {
206
+ access_token: oauthData.access_token,
207
+ refresh_token: oauthData.refresh_token ?? "",
208
+ expires_in: oauthData.expires_in,
209
+ token_endpoint: oauthData.token_endpoint ?? "",
210
+ client_id: oauthData.client_id ?? "",
211
+ mcp_oauth: oauthData.mcp_oauth ?? false,
212
+ token_encoding: oauthData.token_encoding ?? "none",
213
+ resource_url: oauthData.resource_url ?? null,
214
+ provider: oauthData.provider,
215
+ mcp_url: oauthData.mcp_url,
216
+ tokenFilePath: getTokenPathForScript(skillName, target),
217
+ ...(oauthData.client_secret && { client_secret: oauthData.client_secret }),
218
+ }
219
+ : undefined;
220
+ const { skillName: finalSkillName, skillMd, shellScript } = generate(result, skillName, oauthTokenInfo, target);
221
+ const skillDir = join(outDir, finalSkillName);
222
+ const scriptsDir = join(skillDir, "scripts");
223
+ await mkdir(scriptsDir, { recursive: true });
224
+ await writeFile(join(skillDir, "SKILL.md"), skillMd, "utf8");
225
+ const scriptPath = join(scriptsDir, `${finalSkillName}.sh`);
226
+ await writeFile(scriptPath, shellScript, "utf8");
227
+ await chmod(scriptPath, 0o755);
228
+ if (tokenFilePath)
229
+ console.log(`✓ Token saved: ${tokenFilePath}`);
230
+ console.log(`✓ Generated: ${skillDir}/`);
231
+ return;
232
+ }
233
+ for (const target of targets) {
234
+ const outDir = target === "hermes" ? HERMES_SKILLS_DIR : OPENCLAW_SKILLS_DIR;
235
+ const tokenFilePath = oauthData
236
+ ? await saveTokenFile(skillName, {
237
+ ...oauthData,
238
+ workspace_name: oauthData.workspace_name ?? null,
239
+ }, target)
240
+ : undefined;
241
+ const oauthTokenInfo = oauthData
242
+ ? {
243
+ access_token: oauthData.access_token,
244
+ refresh_token: oauthData.refresh_token ?? "",
245
+ expires_in: oauthData.expires_in,
246
+ token_endpoint: oauthData.token_endpoint ?? "",
247
+ client_id: oauthData.client_id ?? "",
248
+ mcp_oauth: oauthData.mcp_oauth ?? false,
249
+ token_encoding: oauthData.token_encoding ?? "none",
250
+ resource_url: oauthData.resource_url ?? null,
251
+ provider: oauthData.provider,
252
+ mcp_url: oauthData.mcp_url,
253
+ tokenFilePath: getTokenPathForScript(skillName, target),
254
+ ...(oauthData.client_secret && { client_secret: oauthData.client_secret }),
255
+ }
256
+ : undefined;
257
+ const { skillName: finalSkillName, skillMd, shellScript } = generate(result, skillName, oauthTokenInfo, target);
258
+ const skillDir = join(outDir, finalSkillName);
259
+ const scriptsDir = join(skillDir, "scripts");
260
+ await mkdir(scriptsDir, { recursive: true });
261
+ await writeFile(join(skillDir, "SKILL.md"), skillMd, "utf8");
262
+ const scriptPath = join(scriptsDir, `${finalSkillName}.sh`);
263
+ await writeFile(scriptPath, shellScript, "utf8");
264
+ await chmod(scriptPath, 0o755);
265
+ if (tokenFilePath)
266
+ console.log(`✓ Token saved: ${tokenFilePath}`);
267
+ console.log(`✓ Skill installed: ${finalSkillName} (${target})`);
268
+ console.log(` ${skillDir}/`);
269
+ if (target === "openclaw") {
270
+ await updateOpenClawConfig(finalSkillName);
271
+ }
229
272
  }
230
- const { skillName: finalSkillName, skillMd, shellScript } = generate(result, skillName, oauthTokenInfo ? { ...oauthTokenInfo, tokenFilePath: tokenFilePath } : undefined, target);
231
- const skillDir = join(outDir, finalSkillName);
232
- const scriptsDir = join(skillDir, "scripts");
233
- await mkdir(scriptsDir, { recursive: true });
234
- const skillMdPath = join(skillDir, "SKILL.md");
235
- const scriptPath = join(scriptsDir, `${finalSkillName}.sh`);
236
- await writeFile(skillMdPath, skillMd, "utf8");
237
- await writeFile(scriptPath, shellScript, "utf8");
238
- await chmod(scriptPath, 0o755);
239
273
  const localScriptsDir = join(process.cwd(), "scripts");
240
274
  await mkdir(localScriptsDir, { recursive: true });
275
+ const lastTarget = targets[targets.length - 1];
276
+ const lastOutDir = lastTarget === "hermes" ? HERMES_SKILLS_DIR : OPENCLAW_SKILLS_DIR;
277
+ const finalSkillName = skillNameOverride ?? skillName;
241
278
  const localScriptPath = join(localScriptsDir, `${finalSkillName}.sh`);
242
- await copyFile(scriptPath, localScriptPath);
279
+ await copyFile(join(lastOutDir, finalSkillName, "scripts", `${finalSkillName}.sh`), localScriptPath);
243
280
  await chmod(localScriptPath, 0o755);
244
281
  console.log(`✓ Copied to local workspace: ${localScriptPath}`);
245
- const isOpenClawInstall = resolve(outDir) === resolve(OPENCLAW_SKILLS_DIR);
246
- const isHermesInstall = resolve(outDir) === resolve(HERMES_SKILLS_DIR);
247
- if (isOpenClawInstall) {
248
- await updateOpenClawConfig(finalSkillName);
249
- console.log("");
250
- console.log(`✓ Skill installed: ${finalSkillName}`);
251
- console.log(` ${skillDir}/`);
252
- if (oauthTokenInfo) {
253
- console.log(` Token auto-refresh enabled (${oauthTokenInfo.provider})`);
254
- }
255
- console.log("");
256
- console.log("Restart OpenClaw (or wait for auto-reload), then try:");
257
- console.log(` "use ${result.serverInfo.name} to ${result.tools[0]?.name?.replace(/-/g, " ") ?? "run a tool"}"`);
258
- }
259
- else if (isHermesInstall) {
260
- console.log("");
261
- console.log(`✓ Skill installed: ${finalSkillName}`);
262
- console.log(` ${skillDir}/`);
263
- if (oauthTokenInfo) {
264
- console.log(` Token auto-refresh enabled (${oauthTokenInfo.provider})`);
265
- }
266
- console.log("");
267
- console.log("Restart Hermes (or wait for skills watcher), then try:");
268
- console.log(` "/${finalSkillName}" or "use ${result.serverInfo.name} to ${result.tools[0]?.name?.replace(/-/g, " ") ?? "run a tool"}"`);
269
- }
270
- else {
271
- console.log("");
272
- console.log(`Generated skill: ${finalSkillName}`);
273
- console.log(` ${skillMdPath}`);
274
- console.log(` ${scriptPath}`);
275
- if (oauthTokenInfo) {
276
- console.log(` Token auto-refresh enabled (${oauthTokenInfo.provider})`);
277
- }
278
- const installDir = target === "hermes" ? HERMES_SKILLS_DIR : OPENCLAW_SKILLS_DIR;
279
- const targetName = target === "hermes" ? "Hermes" : "OpenClaw";
280
- console.log("");
281
- console.log(`To install in ${targetName}:`);
282
- console.log(` cp -r ${skillDir} ${installDir}/`);
282
+ const targetNames = targets.map((t) => (t === "hermes" ? "Hermes" : "OpenClaw")).join(" & ");
283
+ console.log("");
284
+ if (oauthData) {
285
+ console.log(` Token auto-refresh enabled (${oauthData.provider})`);
283
286
  }
287
+ console.log(`Restart ${targetNames} (or wait for auto-reload), then try:`);
288
+ console.log(` "use ${result.serverInfo.name} to ${result.tools[0]?.name?.replace(/-/g, " ") ?? "run a tool"}"`);
284
289
  console.log("");
285
290
  console.log("Test the script directly:");
286
- console.log(` ${scriptPath} ${result.tools[0]?.name ?? "tool-name"} '{}'`);
291
+ console.log(` ${localScriptPath} ${result.tools[0]?.name ?? "tool-name"} '{}'`);
287
292
  }
288
293
  main().catch((err) => {
289
294
  console.error("Error:", err.message);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type TargetChoice = "openclaw" | "hermes" | "both";
2
+ export type AuthChoice = "oauth" | "api_key" | "no_auth";
3
+ export declare function promptAuth(hasOAuthProvider: boolean, hasHeader: boolean): Promise<AuthChoice>;
4
+ export declare function promptTarget(): Promise<TargetChoice>;
5
+ export declare function promptApiKey(): Promise<string>;
6
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAYzD,wBAAsB,UAAU,CAC9B,gBAAgB,EAAE,OAAO,EACzB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,UAAU,CAAC,CAuBrB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAa1D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAMpD"}
@@ -0,0 +1,56 @@
1
+ import { createInterface } from "node:readline";
2
+ function question(prompt) {
3
+ return new Promise((resolve) => {
4
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
5
+ rl.question(prompt, (answer) => {
6
+ rl.close();
7
+ resolve(answer.trim());
8
+ });
9
+ });
10
+ }
11
+ export async function promptAuth(hasOAuthProvider, hasHeader) {
12
+ if (hasHeader)
13
+ return "api_key";
14
+ if (!process.stdin.isTTY) {
15
+ if (hasOAuthProvider) {
16
+ throw new Error("Non-interactive mode: OAuth requires a TTY. Use --header for API key.");
17
+ }
18
+ return "no_auth";
19
+ }
20
+ const options = hasOAuthProvider
21
+ ? "? Auth: (1) OAuth (2) API key (3) No auth\n> "
22
+ : "? Auth: (2) API key (3) No auth (OAuth only for Notion, PostHog, Supabase)\n> ";
23
+ const answer = await question(options);
24
+ const n = answer === "" ? "1" : answer;
25
+ if (hasOAuthProvider && (n === "1" || n.toLowerCase() === "oauth"))
26
+ return "oauth";
27
+ if (n === "2" || n.toLowerCase() === "api" || n.toLowerCase() === "apikey")
28
+ return "api_key";
29
+ if (n === "3" || n.toLowerCase() === "no" || n.toLowerCase() === "none")
30
+ return "no_auth";
31
+ if (hasOAuthProvider)
32
+ return "oauth";
33
+ return "no_auth";
34
+ }
35
+ export async function promptTarget() {
36
+ if (!process.stdin.isTTY) {
37
+ return "openclaw";
38
+ }
39
+ const answer = await question("? Install to: (1) OpenClaw (2) Hermes (3) Both\n> ");
40
+ const n = answer === "" ? "1" : answer;
41
+ if (n === "1" || n.toLowerCase() === "openclaw")
42
+ return "openclaw";
43
+ if (n === "2" || n.toLowerCase() === "hermes")
44
+ return "hermes";
45
+ if (n === "3" || n.toLowerCase() === "both")
46
+ return "both";
47
+ return "openclaw";
48
+ }
49
+ export async function promptApiKey() {
50
+ const token = await question("? Paste your Bearer token:\n> ");
51
+ if (!token) {
52
+ throw new Error("No token provided.");
53
+ }
54
+ return token;
55
+ }
56
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAMhD,SAAS,QAAQ,CAAC,MAAc;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,gBAAyB,EACzB,SAAkB;IAElB,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB;QAC9B,CAAC,CAAC,iDAAiD;QACnD,CAAC,CAAC,iFAAiF,CAAC;IAEtF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAEvC,IAAI,gBAAgB,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACnF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC7F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAE1F,IAAI,gBAAgB;QAAE,OAAO,OAAO,CAAC;IACrC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,sDAAsD,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAEvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IACnE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAE3D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@filiksyos/mcptoskill",
3
- "version": "0.2.9",
4
- "description": "Turn any MCP server into an OpenClaw skill",
3
+ "version": "0.3.0",
4
+ "description": "Turn any MCP server into an OpenClaw or Hermes skill",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "mcptoskill": "dist/index.js"