chaimi-bookkeeping-mcp 2.2.3 → 2.2.4
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/bin/cli.js +5 -1
- package/package.json +1 -1
- package/server.js +2 -24
package/bin/cli.js
CHANGED
|
@@ -10,6 +10,10 @@ const fs = require('fs');
|
|
|
10
10
|
const os = require('os');
|
|
11
11
|
const { spawn } = require('child_process');
|
|
12
12
|
|
|
13
|
+
// 读取 package.json 获取版本
|
|
14
|
+
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8'));
|
|
15
|
+
const CURRENT_VERSION = packageJson.version;
|
|
16
|
+
|
|
13
17
|
// 获取 server.js 的绝对路径
|
|
14
18
|
const serverPath = path.join(__dirname, '..', 'server.js');
|
|
15
19
|
|
|
@@ -183,7 +187,7 @@ function configureAllAgents() {
|
|
|
183
187
|
function showWelcome() {
|
|
184
188
|
console.log('╔════════════════════════════════════════════════════════╗');
|
|
185
189
|
console.log('║ ║');
|
|
186
|
-
console.log(
|
|
190
|
+
console.log(`║ 柴米记账 MCP Server v${CURRENT_VERSION} ║`);
|
|
187
191
|
console.log('║ ║');
|
|
188
192
|
console.log('║ 支持: OpenClaw | WorkBuddy | Claude | Cursor ║');
|
|
189
193
|
console.log('║ ║');
|
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -223,10 +223,6 @@ async function getToken() {
|
|
|
223
223
|
}
|
|
224
224
|
// 超过2小时,尝试刷新
|
|
225
225
|
console.log('Token 超过2小时,尝试自动刷新...');
|
|
226
|
-
} else if (cachedToken && tokenExpireTime <= Date.now() + 5 * 60 * 1000) {
|
|
227
|
-
// Token 已过期,添加友好提示
|
|
228
|
-
console.log('🔐 Token 已过期,需要重新授权');
|
|
229
|
-
console.log('请使用 mcporter 调用 柴米记账.save_expense() 开始授权');
|
|
230
226
|
}
|
|
231
227
|
|
|
232
228
|
// 使用 OAuth 获取有效 Token
|
|
@@ -239,32 +235,14 @@ async function getToken() {
|
|
|
239
235
|
cachedToken = oauthToken.accessToken;
|
|
240
236
|
tokenExpireTime = oauthToken.expiresAt;
|
|
241
237
|
lastRefreshTime = Date.now();
|
|
242
|
-
// 授权成功,清除授权状态
|
|
243
|
-
await oauthManager.clearAuthState();
|
|
244
238
|
return cachedToken;
|
|
245
239
|
} catch (err) {
|
|
246
|
-
// OAuth Token
|
|
247
|
-
console.log('
|
|
248
|
-
console.log('请使用 mcporter 调用 柴米记账.save_expense() 开始授权');
|
|
249
|
-
console.log('OAuth Token 无效,检查授权状态...');
|
|
250
|
-
|
|
251
|
-
// 检查是否有未完成的授权
|
|
252
|
-
const authState = await oauthManager.loadAuthState();
|
|
253
|
-
if (authState && !oauthManager.isAuthStateExpired(authState)) {
|
|
254
|
-
console.log(`检测到未完成的授权,验证码: ${authState.userCode}`);
|
|
255
|
-
console.log('请在微信柴米记账小程序中输入此验证码完成授权');
|
|
256
|
-
console.log('授权完成后,请重新调用工具');
|
|
257
|
-
throw new Error(`授权进行中,请使用验证码 ${authState.userCode} 完成授权`);
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
// 没有未完成的授权,启动新的授权流程
|
|
261
|
-
console.log('启动新的授权流程...');
|
|
240
|
+
// OAuth Token 无效,尝试重新授权
|
|
241
|
+
console.log('OAuth Token 无效,启动授权流程...');
|
|
262
242
|
const newToken = await oauthManager.startAuthFlow();
|
|
263
243
|
cachedToken = newToken.accessToken;
|
|
264
244
|
tokenExpireTime = newToken.expiresAt;
|
|
265
245
|
lastRefreshTime = Date.now();
|
|
266
|
-
// 授权成功,清除授权状态
|
|
267
|
-
await oauthManager.clearAuthState();
|
|
268
246
|
return cachedToken;
|
|
269
247
|
}
|
|
270
248
|
}
|