@uzqw/mcp 0.1.6 → 0.1.7

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 +33 -18
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -235,7 +235,7 @@ function registerTools(server2, client2) {
235
235
 
236
236
  // src/index.ts
237
237
  var CALLBACK_PORT = 8199;
238
- var LOGIN_TIMEOUT_MS = 12e4;
238
+ var LOGIN_TIMEOUT_MS = 3e5;
239
239
  var require2 = createRequire(import.meta.url);
240
240
  var MCP_VERSION = require2("../package.json").version;
241
241
  var sub = process.argv[2];
@@ -272,23 +272,32 @@ server.registerTool(
272
272
  annotations: { title: "\u767B\u5F55 Recolx", ...READ_ONLY2 },
273
273
  inputSchema: LoginInput
274
274
  },
275
- async () => {
276
- const existingToken = await client.auth.getAccessToken();
277
- if (existingToken) {
278
- try {
279
- await client.getCurrentUser();
280
- return { content: [{ type: "text", text: "\u5DF2\u767B\u5F55\u3002" }] };
281
- } catch (err) {
282
- const msg = err instanceof Error ? err.message : String(err);
283
- if (msg.includes("401") || msg.includes("\u672A\u767B\u5F55")) {
284
- await client.auth.logout();
285
- } else {
286
- return { content: [{ type: "text", text: `\u767B\u5F55\u6001\u6821\u9A8C\u5931\u8D25\uFF1A${msg}` }], isError: true };
275
+ async (args = {}) => {
276
+ if (!args.force) {
277
+ const existingToken = await client.auth.getAccessToken();
278
+ if (existingToken) {
279
+ try {
280
+ await client.getCurrentUser();
281
+ return {
282
+ content: [
283
+ {
284
+ type: "text",
285
+ text: "\u5DF2\u767B\u5F55\u3002\u82E5\u4F60\u60F3\u5207\u6362\u8D26\u53F7\uFF0C\u8BF7\u7528 login(force: true) \u5F3A\u5236\u91CD\u65B0\u8BA4\u8BC1\uFF08\u6D4F\u89C8\u5668\u4F1A\u5F39\u51FA\u767B\u5F55\u9875\uFF0C\u53EF\u6362\u53F7\uFF09\u3002"
286
+ }
287
+ ]
288
+ };
289
+ } catch (err) {
290
+ const msg = err instanceof Error ? err.message : String(err);
291
+ if (msg.includes("401") || msg.includes("\u672A\u767B\u5F55")) {
292
+ await client.auth.logout();
293
+ } else {
294
+ return { content: [{ type: "text", text: `\u767B\u5F55\u6001\u6821\u9A8C\u5931\u8D25\uFF1A${msg}` }], isError: true };
295
+ }
287
296
  }
288
297
  }
289
298
  }
290
299
  const devUserId = process.env.RECOLX_DEV_USER_ID;
291
- const authReq = client.auth.createAuthorizationRequest(devUserId ? { user_id: devUserId } : {});
300
+ const authReq = client.auth.createAuthorizationRequest(devUserId ? { user_id: devUserId } : args.force ? { prompt: "login" } : {});
292
301
  const authUrlFile = process.env.RECOLX_DEV_AUTH_URL_FILE;
293
302
  const result = await runOAuthCallback({
294
303
  port: CALLBACK_PORT,
@@ -320,10 +329,9 @@ server.registerTool(
320
329
  content: [
321
330
  {
322
331
  type: "text",
323
- text: `\u6388\u6743\u8D85\u65F6\uFF082 \u5206\u949F\uFF09\u3002\u82E5\u6D4F\u89C8\u5668\u672A\u81EA\u52A8\u6253\u5F00\uFF0C\u8BF7\u624B\u52A8\u8BBF\u95EE\uFF1A
324
- ${authReq.url}
332
+ text: `\u6388\u6743\u7B49\u5F85\u8D85\u65F6\uFF085 \u5206\u949F\uFF09\u3002\u82E5\u6D4F\u89C8\u5668\u5DF2\u8DF3\u8F6C\u5E76\u663E\u793A "localhost:8199 \u65E0\u6CD5\u8BBF\u95EE"\uFF0C\u8BF4\u660E\u672C\u6B21\u6388\u6743\u7A97\u53E3\u5DF2\u8FC7\u671F\u2014\u2014\u8BF7\u91CD\u65B0\u8C03\u7528 login \u518D\u8BD5\uFF08\u767B\u5F55\u9700\u5728 5 \u5206\u949F\u5185\u5B8C\u6210\uFF09\u3002
325
333
 
326
- \u8FDC\u7A0B/\u65E0\u5934\u673A\u5668\uFF1A\u53EF\u8BBE RECOLX_DEV_AUTH_URL_FILE=/path/url.txt \u8BA9 login \u628A\u6388\u6743 URL \u5199\u5165\u6587\u4EF6\u540E\u518D\u624B\u52A8\u5904\u7406\uFF1B\u5E76\u9700\u8F6C\u53D1\u672C\u5730\u7AEF\u53E3 ${CALLBACK_PORT}\uFF1Assh -L ${CALLBACK_PORT}:localhost:${CALLBACK_PORT}`
334
+ \u65E0\u5934/\u8FDC\u7A0B\u673A\u5668\uFF1A\u53EF\u8BBE RECOLX_DEV_AUTH_URL_FILE=/path/url.txt \u8BA9 login \u628A\u6388\u6743 URL \u5199\u5165\u6587\u4EF6\u540E\u518D\u624B\u52A8\u5904\u7406\uFF1B\u5E76\u9700\u8F6C\u53D1\u672C\u5730\u7AEF\u53E3 ${CALLBACK_PORT}\uFF1Assh -L ${CALLBACK_PORT}:localhost:${CALLBACK_PORT}`
327
335
  }
328
336
  ],
329
337
  isError: true
@@ -363,7 +371,14 @@ server.registerTool(
363
371
  } catch {
364
372
  }
365
373
  await client.auth.logout();
366
- return { content: [{ type: "text", text: "\u5DF2\u767B\u51FA\u5E76\u64A4\u9500\u6388\u6743\u3002" }] };
374
+ return {
375
+ content: [
376
+ {
377
+ type: "text",
378
+ text: "\u5DF2\u767B\u51FA\u5E76\u64A4\u9500 Recolx \u6388\u6743\uFF08\u672C\u5730 token \u5DF2\u5220\u9664\uFF09\u3002\u6CE8\u610F\uFF1A\u6D4F\u89C8\u5668\u91CC test-auth.recolx.ai \u7684 Logto \u4F1A\u8BDD\u4E0D\u53D7\u5F71\u54CD\u2014\u2014\u518D\u6B21 login \u4F1A SSO \u79D2\u8FC7\uFF1B\u8981\u6362\u8D26\u53F7\u8BF7\u7528 login(force: true)\u3002"
379
+ }
380
+ ]
381
+ };
367
382
  }
368
383
  );
369
384
  registerTools(server, client);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uzqw/mcp",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Recolx read-only MCP server (stdio) — 7 read-only tools, readOnlyHint: true",
5
5
  "mcpName": "io.github.uzqw/recolx-mcp",
6
6
  "publishConfig": {