chaimi-keep-mcp 3.1.40-beta.3 → 3.1.40-beta.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.
Files changed (3) hide show
  1. package/SKILL.md +19 -4
  2. package/package.json +1 -1
  3. package/server.js +49 -11
package/SKILL.md CHANGED
@@ -293,21 +293,36 @@ Agent **直接使用当前时间**作为收入时间,无需进行时间语义
293
293
  ```
294
294
  ✅ 【商品名/店名】¥【金额】 已录入柴米AI记账。
295
295
 
296
- [自定义其他内容]
297
-
298
296
  【友好结束语】
299
- ------------
300
- chaimi-keep-mcp: v【版本号】
301
297
 
298
+ 消费洞察:【洞察内容】(可选)
299
+ -------------
300
+ chaimi-keep-mcp: v【版本号】
302
301
  ```
303
302
 
304
303
  **友好结束语参考:**
305
304
  - 餐饮类:用餐愉快!🍚 / 好好吃饭哦~
305
+ - 食品类:吃好喝好!🍎
306
306
  - 交通类:出行顺利!🚗
307
307
  - 购物类:买得开心!🛍️
308
308
  - 收入类:入账顺利!💰
309
309
  - 通用:记账完成!继续保持~ ✨
310
310
 
311
+ **消费洞察(可选):**
312
+ - 由云函数自动生成,返回记账后的即时洞察
313
+ - 示例:这是你本周第19次餐饮消费,要不要看看本周餐饮花了多少钱?
314
+
315
+ **真实示例:**
316
+ ```
317
+ ✅ 【肌肉】¥24 已录入柴米AI记账。
318
+
319
+ 好好吃饭哦~
320
+
321
+ 消费洞察:这是你本周第19次餐饮消费,要不要看看本周餐饮花了多少钱?
322
+ -------------
323
+ chaimi-keep-mcp: v3.1.40-beta.3
324
+ ```
325
+
311
326
  ---
312
327
 
313
328
  ## 错误处理
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chaimi-keep-mcp",
3
- "version": "3.1.40-beta.3",
3
+ "version": "3.1.40-beta.4",
4
4
  "description": "柴米记账 MCP Server - 支持 Claude、Cursor、OpenClaw、WorkBuddy 等 AI 工具直接记账",
5
5
  "main": "server.js",
6
6
  "bin": {
package/server.js CHANGED
@@ -702,8 +702,28 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
702
702
  const displayName = processedArgs.name || '未知商品';
703
703
  const displayAmount = processedArgs.amount || 0;
704
704
  const displayCategory = processedArgs.category || '其他';
705
- const displayStore = processedArgs.store || '-';
706
- userMessage = `✅ 记账成功\n\n| 商品 | 金额 | 分类 | 商家 |\n|------|------|------|------|\n| ${displayName} | ${displayAmount}元 | ${displayCategory} | ${displayStore} |\n\n已保存到你的柴米记账小程序数据库。`;
705
+ const displayStore = processedArgs.store || '';
706
+
707
+ // 友好结束语(根据分类)
708
+ const friendlyEndings = {
709
+ '餐饮': '用餐愉快!🍚 / 好好吃饭哦~',
710
+ '食品': '吃好喝好!🍎',
711
+ '交通': '出行顺利!🚗',
712
+ '购物': '买得开心!🛍️',
713
+ '收入': '入账顺利!💰',
714
+ '其他': '记账完成!继续保持~ ✨'
715
+ };
716
+ const friendlyEnding = friendlyEndings[displayCategory] || '记账完成!继续保持~ ✨';
717
+
718
+ // 消费洞察(如果有)
719
+ let insightsText = '';
720
+ if (result.insights && result.insights.length > 0) {
721
+ insightsText = '\n\n消费洞察:' + result.insights.map(ins => ins.message || ins.title).join(';');
722
+ }
723
+
724
+ // 按 SKILL 规范格式:记账成功 + 友好结束语 + 消费洞察 + 版本号
725
+ const displayStoreText = displayStore ? `【${displayStore}】` : '';
726
+ userMessage = `✅ ${displayName}${displayStoreText} ¥${displayAmount} 已录入柴米AI记账。\n\n${friendlyEnding}${insightsText}\n-------------\nchaimi-keep-mcp: v${MCP_VERSION}`;
707
727
 
708
728
  if (!processedArgs.agentType || !processedArgs.apiProvider) {
709
729
  userMessage += '\n\n💡 提示:传递agentType和apiProvider参数可解锁小程序记录来源统计功能,示例:agentType="openclaw", apiProvider="doubao"';
@@ -941,10 +961,26 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
941
961
 
942
962
  if (result.success) {
943
963
  const totalAmount = processedArgs.totalAmount || processedArgs.items?.reduce((sum, item) => sum + (item.amount || 0), 0) || 0;
944
- const itemsList = processedArgs.items?.map(item => `• ${item.name || '未知商品'} - ${item.amount || 0}元`).join('\n') || '暂无商品明细';
945
- const storeName = processedArgs.store || '-';
946
- const category = processedArgs.items?.[0]?.category || '其他';
947
- userMessage = `✅ 小票记录成功\n\n| 项目 | 内容 |\n|------|------|\n| 商家 | ${storeName} |\n| 金额 | ${totalAmount}元 |\n| 分类 | ${category} |\n\n商品明细:\n${itemsList}\n\n已保存到你的柴米记账小程序数据库。`;
964
+ const storeName = processedArgs.store || '';
965
+ const category = processedArgs.items?.[0]?.category || '购物';
966
+ const itemCount = processedArgs.items?.length || 0;
967
+
968
+ // 友好结束语(根据分类)
969
+ const friendlyEndings = {
970
+ '餐饮': '用餐愉快!🍚',
971
+ '食品': '吃好喝好!🍎',
972
+ '购物': '买得开心!🛍️',
973
+ '其他': '记账完成!继续保持~ ✨'
974
+ };
975
+ const friendlyEnding = friendlyEndings[category] || '买得开心!🛍️';
976
+
977
+ // 消费洞察(如果有)
978
+ let insightsText = '';
979
+ if (result.insights && result.insights.length > 0) {
980
+ insightsText = '\n\n消费洞察:' + result.insights.map(ins => ins.message || ins.title).join(';');
981
+ }
982
+
983
+ userMessage = `✅ ${storeName} ¥${totalAmount} 已录入柴米AI记账(${itemCount}件商品)。\n\n${friendlyEnding}${insightsText}\n-------------\nchaimi-keep-mcp: v${MCP_VERSION}`;
948
984
 
949
985
  if (!processedArgs.agentType || !processedArgs.apiProvider) {
950
986
  userMessage += '\n\n💡 提示:传递agentType和apiProvider参数可解锁小程序记录来源统计功能,示例:agentType="openclaw", apiProvider="doubao"';
@@ -1149,11 +1185,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
1149
1185
  result = await callMcpHub('addIncome', mcpParams, token);
1150
1186
 
1151
1187
  if (result.success) {
1152
- const displayName = processedArgs.name;
1153
- const displayAmount = processedArgs.amount;
1154
- const displayCategory = processedArgs.category;
1155
- const displayStore = processedArgs.store || '-';
1156
- userMessage = `✅ 收入记录成功\n\n| 来源 | 金额 | 分类 | 付款方 |\n|------|------|------|--------|\n| ${displayName} | ${displayAmount}元 | ${displayCategory} | ${displayStore} |`;
1188
+ const displayName = processedArgs.name || '未知收入';
1189
+ const displayAmount = processedArgs.amount || 0;
1190
+ const displayCategory = processedArgs.category || '其他';
1191
+ const displayStore = processedArgs.store || '';
1192
+ const displayStoreText = displayStore ? `【${displayStore}】` : '';
1193
+
1194
+ userMessage = `✅ ${displayName}${displayStoreText} ¥${displayAmount} 已录入柴米AI记账。\n\n入账顺利!💰\n-------------\nchaimi-keep-mcp: v${MCP_VERSION}`;
1157
1195
  }
1158
1196
  break;
1159
1197
  }