chaimi-bookkeeping-mcp 2.3.2 → 2.3.3

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 (3) hide show
  1. package/README.md +8 -0
  2. package/package.json +1 -1
  3. package/server.js +16 -6
package/README.md CHANGED
@@ -141,6 +141,14 @@ AI 会自动调用 `save_income` 工具记录收入。
141
141
 
142
142
  ## 更新日志
143
143
 
144
+ ### v2.3.2 (2026-04-08)
145
+ - **修复** `server.js` 中 `CURRENT_VERSION` 未定义错误,统一使用 `MCP_VERSION`
146
+ - **修复** 所有工具的 `userMessage` 添加默认值,防止显示 `undefined`
147
+
148
+ ### v2.3.1 (2026-04-08)
149
+ - **修复** `bin/cli.js` 版本号显示问题,改为动态读取 package.json
150
+ - **优化** OAuth 授权流程,轮询间隔缩短为 2 秒
151
+
144
152
  ### v2.3.0 (2026-04-08)
145
153
  - **修复** `save_receipt` 的 `items` 参数解析 bug,支持 JSON 字符串自动转换
146
154
  - **优化** `source` 字段规范:`save_expense`→`mcp_txt_expense`、`save_income`→`mcp_txt_income`、`save_receipt`→`mcp_receipt`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chaimi-bookkeeping-mcp",
3
- "version": "2.3.2",
3
+ "version": "2.3.3",
4
4
  "description": "柴米记账 MCP Server - 支持 Claude、Cursor、OpenClaw、WorkBuddy 等 AI 工具直接记账",
5
5
  "main": "server.js",
6
6
  "bin": {
package/server.js CHANGED
@@ -72,7 +72,7 @@ function initOAuthManager() {
72
72
  const server = new Server(
73
73
  {
74
74
  name: 'chaimi-bookkeeping-mcp',
75
- version: CURRENT_VERSION,
75
+ version: MCP_VERSION,
76
76
  },
77
77
  {
78
78
  capabilities: {
@@ -491,7 +491,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
491
491
 
492
492
  // 格式化输出
493
493
  if (result.success) {
494
- userMessage = `✅ 记账成功\n\n| 商品 | 金额 | 分类 | 商家 |\n|------|------|------|------|\n| ${processedArgs.name} | ${processedArgs.amount}元 | ${processedArgs.category || '其他'} | ${processedArgs.store || '-'} |\n\n已保存到你的柴米记账小程序数据库。`;
494
+ const displayName = processedArgs.name || '未知商品';
495
+ const displayAmount = processedArgs.amount || 0;
496
+ const displayCategory = processedArgs.category || '其他';
497
+ const displayStore = processedArgs.store || '-';
498
+ userMessage = `✅ 记账成功\n\n| 商品 | 金额 | 分类 | 商家 |\n|------|------|------|------|\n| ${displayName} | ${displayAmount}元 | ${displayCategory} | ${displayStore} |\n\n已保存到你的柴米记账小程序数据库。`;
495
499
  }
496
500
  break;
497
501
  }
@@ -533,8 +537,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
533
537
  // 格式化输出
534
538
  if (result.success) {
535
539
  const totalAmount = processedArgs.totalAmount || processedArgs.items?.reduce((sum, item) => sum + (item.amount || 0), 0) || 0;
536
- const itemsList = processedArgs.items?.map(item => `• ${item.name} - ${item.amount}元`).join('\n');
537
- userMessage = `✅ 小票记录成功\n\n| 项目 | 内容 |\n|------|------|\n| 商家 | ${processedArgs.store || '-'} |\n| 金额 | ${totalAmount}元 |\n| 分类 | ${processedArgs.items?.[0]?.category || '其他'} |\n\n商品明细:\n${itemsList}\n\n已保存到你的柴米记账小程序数据库。`;
540
+ const itemsList = processedArgs.items?.map(item => `• ${item.name || '未知商品'} - ${item.amount || 0}元`).join('\n') || '暂无商品明细';
541
+ const storeName = processedArgs.store || '-';
542
+ const category = processedArgs.items?.[0]?.category || '其他';
543
+ userMessage = `✅ 小票记录成功\n\n| 项目 | 内容 |\n|------|------|\n| 商家 | ${storeName} |\n| 金额 | ${totalAmount}元 |\n| 分类 | ${category} |\n\n商品明细:\n${itemsList}\n\n已保存到你的柴米记账小程序数据库。`;
538
544
  }
539
545
  break;
540
546
  }
@@ -571,7 +577,11 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
571
577
 
572
578
  // 格式化输出
573
579
  if (result.success) {
574
- userMessage = `✅ 收入记录成功\n\n| 来源 | 金额 | 分类 | 付款方 |\n|------|------|------|--------|\n| ${processedArgs.name} | ${processedArgs.amount}元 | ${processedArgs.category || '其他'} | ${processedArgs.store || '-'} |`;
580
+ const displayName = processedArgs.name || '未知来源';
581
+ const displayAmount = processedArgs.amount || 0;
582
+ const displayCategory = processedArgs.category || '其他';
583
+ const displayStore = processedArgs.store || '-';
584
+ userMessage = `✅ 收入记录成功\n\n| 来源 | 金额 | 分类 | 付款方 |\n|------|------|------|--------|\n| ${displayName} | ${displayAmount}元 | ${displayCategory} | ${displayStore} |`;
575
585
  }
576
586
  break;
577
587
  }
@@ -586,7 +596,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
586
596
  }
587
597
 
588
598
  // 添加版本信息提示
589
- userMessage += `\n\n---\n📦 柴米记账 MCP v${CURRENT_VERSION}`;
599
+ userMessage += `\n\n---\n📦 柴米记账 MCP v${MCP_VERSION}`;
590
600
 
591
601
  return {
592
602
  content: [