chaimi-bookkeeping-mcp 2.1.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/.env ADDED
@@ -0,0 +1,6 @@
1
+ # OAuth 测试配置(临时,用于测试 OAuth 流程)
2
+ # 注意:没有 MCP_TOKEN,强制使用 OAuth 授权
3
+
4
+ MCP_OAUTH_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpOAuth
5
+ MCP_HUB_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpHub-mcp
6
+ MCP_PROMPT_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpPrompt
package/.env.backup ADDED
@@ -0,0 +1,5 @@
1
+ # /Users/solinxia/aider.git/caihuo_record_list/mcp-server-local/.env
2
+
3
+ MCP_HUB_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpHub-mcp
4
+ MCP_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcGVuaWQiOiJvaEM1eDNUdjRHLUxnVVdoWkJXWkhRNUg0UzRBIiwiaWF0IjoxNzc1MTEyNTc5LCJleHAiOjE3Nzc3MDQ1Nzl9.qmGS6eK9mwhFU7e---NlA7QvbcuRZqDsibkgYh74rGU
5
+ MCP_OPENID=ohC5x3Tv4G-LgUWhZBWZHQ5H4S4A
package/.env.example ADDED
@@ -0,0 +1,26 @@
1
+ # 柴米记账 MCP Server 环境变量配置
2
+ # OAuth 2.0 Device Flow 认证(行业标准方案)
3
+
4
+ # ========================================
5
+ # 必需配置
6
+ # ========================================
7
+
8
+ # OAuth 云函数地址
9
+ # 首次启动会自动引导完成授权,Token 存储在 ~/.mcporter/oauth-token.json
10
+ MCP_OAUTH_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpOAuth
11
+
12
+ # mcpHub 云函数地址
13
+ MCP_HUB_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpHub-mcp
14
+
15
+ # mcpPrompt 云函数地址
16
+ MCP_PROMPT_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpPrompt
17
+
18
+ # ========================================
19
+ # 可选配置
20
+ # ========================================
21
+
22
+ # AI API Key(用于本地解析)
23
+ AI_API_KEY=
24
+
25
+ # AI 提供商(openai/anthropic/deepseek)
26
+ AI_PROVIDER=deepseek
package/.env.test ADDED
@@ -0,0 +1,4 @@
1
+ # 测试环境配置
2
+ MCP_OAUTH_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpOAuth
3
+ MCP_HUB_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpHub-mcp
4
+ MCP_PROMPT_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpPrompt
@@ -0,0 +1,6 @@
1
+ # OAuth 测试配置(临时,用于测试 OAuth 流程)
2
+ # 注意:没有 MCP_TOKEN,强制使用 OAuth 授权
3
+
4
+ MCP_OAUTH_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpOAuth
5
+ MCP_HUB_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpHub-mcp
6
+ MCP_PROMPT_URL=https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpPrompt
package/=0.4.0 ADDED
File without changes
package/README.md ADDED
@@ -0,0 +1,120 @@
1
+ # 柴米记账 MCP Server
2
+
3
+ 通过 Claude、Cursor、OpenClaw、WorkBuddy 等 AI 工具直接记账。
4
+
5
+ ## 系统要求
6
+
7
+ - Node.js >= 18.0.0
8
+ - macOS / Windows / Linux
9
+ - 微信(已安装"柴米记账"小程序)
10
+
11
+ ## 快速安装
12
+
13
+ ### 方式一:npm 全局安装(推荐)
14
+
15
+ ```bash
16
+ # 安装
17
+ npm install -g chaimi-bookkeeping-mcp
18
+
19
+ # 启动(自动配置 mcporter)
20
+ chaimi-bookkeeping-mcp
21
+ ```
22
+
23
+ ### 方式二:手动下载安装
24
+
25
+ 1. 从 GitHub Releases 下载安装包
26
+ 2. 解压后进入目录
27
+ 3. 安装依赖:`npm install`
28
+ 4. 手动配置 `~/.mcporter/mcporter.json`
29
+
30
+ ## 首次使用
31
+
32
+ ### 1. 触发授权
33
+
34
+ 在 WorkBuddy/OpenClaw/Claude 中输入:
35
+
36
+ ```
37
+ 帮我记一笔午餐35元
38
+ ```
39
+
40
+ ### 2. 获取验证码
41
+
42
+ MCP Server 会显示:
43
+
44
+ ```
45
+ ╔════════════════════════════════════════════════════════╗
46
+ ║ 柴米记账 MCP Server - 首次使用需要授权 ║
47
+ ╠════════════════════════════════════════════════════════╣
48
+ ║ ║
49
+ ║ 请在微信中打开以下链接完成授权: ║
50
+ ║ ║
51
+ ║ https://mcp.chaihuo.com/auth?code=ABCD-EFGH ║
52
+ ║ ║
53
+ ║ 或手动输入验证码:ABCD-EFGH ║
54
+ ║ ║
55
+ ║ 1. 打开"柴米记账"小程序 ║
56
+ ║ 2. 点击"我的" → "🤖 Agent 授权" ║
57
+ ║ 3. 输入上述验证码 ║
58
+ ║ ║
59
+ ╚════════════════════════════════════════════════════════╝
60
+ ```
61
+
62
+ ### 3. 小程序授权
63
+
64
+ - **PC 端用户**:点击链接自动唤起微信授权
65
+ - **手机端用户**:打开小程序 → 我的 → Agent 授权 → 输入验证码
66
+
67
+ ### 4. 完成
68
+
69
+ 授权成功后,AI 会自动完成记账。
70
+
71
+ ## 配置说明
72
+
73
+ 如果使用手动安装,需要配置 `~/.mcporter/mcporter.json`:
74
+
75
+ ```json
76
+ {
77
+ "mcpServers": {
78
+ "柴米记账": {
79
+ "command": "chaimi-bookkeeping-mcp",
80
+ "env": {
81
+ "MCP_OAUTH_URL": "https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpOAuth",
82
+ "MCP_HUB_URL": "https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpHub-mcp",
83
+ "MCP_PROMPT_URL": "https://cloud1-2gfe5jhjef06b85d-1412172089.ap-shanghai.app.tcloudbase.com/mcpPrompt"
84
+ }
85
+ }
86
+ }
87
+ }
88
+ ```
89
+
90
+ ## 常见问题
91
+
92
+ **Q: 提示 "command not found: chaimi-bookkeeping-mcp"**
93
+
94
+ A: npm 全局安装后需要重启终端,或检查 npm 全局路径是否加入环境变量。
95
+
96
+ **Q: 验证码无效**
97
+
98
+ A: 验证码 30 分钟内有效,过期需要重新获取。
99
+
100
+ **Q: 需要每次都授权吗**
101
+
102
+ A: 不需要。Token 会自动刷新,除非超过 30 天未使用。
103
+
104
+ **Q: 如何更新到最新版本**
105
+
106
+ A: `npm update -g chaimi-bookkeeping-mcp`
107
+
108
+ ## 技术支持
109
+
110
+ - 微信:xxxxx
111
+ - 邮箱:support@chaihuo.com
112
+ - GitHub Issues: https://github.com/yourusername/chaimi-bookkeeping-mcp/issues
113
+
114
+ ## 更新日志
115
+
116
+ ### v2.1.0 (2026-04-03)
117
+ - 升级 OAuth 2.0 Device Flow 认证
118
+ - 支持 npm 全局安装
119
+ - 支持多种 AI 工具(Claude、Cursor、OpenClaw、WorkBuddy)
120
+ - 自动 Token 刷新
package/SKILL.md ADDED
@@ -0,0 +1,134 @@
1
+ # 柴米记账 Skill
2
+
3
+ ## 简介
4
+
5
+ 柴米记账是一款智能记账工具,支持通过自然语言快速记录消费。本 Skill 让 WorkBuddy 能够自动识别记账意图,调用 MCP 工具完成记账。
6
+
7
+ ## 安装
8
+
9
+ 本 Skill 文件随 MCP Server 一起提供,位于 `mcp-server-local/SKILL.md`。
10
+
11
+ 将本 Skill 复制到 WorkBuddy 的 skills 目录:
12
+
13
+ ```bash
14
+ # 全局安装(推荐)
15
+ mkdir -p ~/.workbuddy/skills/柴米记账/
16
+ cp /path/to/caihuo_record_list/mcp-server-local/SKILL.md ~/.workbuddy/skills/柴米记账/
17
+
18
+ # 或项目级安装
19
+ mkdir -p ./.workbuddy/skills/柴米记账/
20
+ cp /path/to/caihuo_record_list/mcp-server-local/SKILL.md ./.workbuddy/skills/柴米记账/
21
+ ```
22
+
23
+ ## 触发条件
24
+
25
+ 当用户输入包含以下关键词时,自动触发本 Skill:
26
+
27
+ - 记账、花了、买了、消费、支出、付款
28
+ - 吃饭、购物、交通、娱乐、医疗、教育
29
+ - 元、块、钱、¥、$
30
+ - 超市、餐厅、商场、医院、学校
31
+
32
+ ## 操作规范
33
+
34
+ ### 1. 单商品记账
35
+
36
+ **用户示例:**
37
+ - "中午吃了碗面,25元"
38
+ - "买了杯咖啡35"
39
+ - "打车花了50块"
40
+
41
+ **调用工具:** `chaihuo.save_expense`
42
+
43
+ **参数提取:**
44
+ | 参数 | 提取规则 | 示例 |
45
+ |------|---------|------|
46
+ | name | 商品/服务名称 | "牛肉面"、"咖啡"、"打车" |
47
+ | amount | 金额数字 | 25、35、50 |
48
+ | category | 智能分类(见下表) | "餐饮"、"交通" |
49
+ | store | 商家名称(如有) | "星巴克"、"滴滴" |
50
+
51
+ **智能分类规则:**
52
+ | 关键词 | 分类 |
53
+ |--------|------|
54
+ | 吃、饭、面、咖啡、奶茶、餐厅 | 餐饮 |
55
+ | 打车、滴滴、地铁、公交、加油 | 交通 |
56
+ | 超市、买菜、水果、零食 | 食品 |
57
+ | 衣服、鞋、包、化妆品、购物 | 购物 |
58
+ | 电影、游戏、KTV、娱乐 | 娱乐 |
59
+ | 药、医院、看病、体检 | 医疗 |
60
+ | 书、课程、学费、培训 | 教育 |
61
+ | 其他 | 其他 |
62
+
63
+ ### 2. 小票记账
64
+
65
+ **用户示例:**
66
+ - "在沃尔玛买了牛奶30,面包15,鸡蛋20"
67
+ - "晚餐:小炒肉45,米饭5,可乐8"
68
+
69
+ **调用工具:** `chaihuo.save_receipt`
70
+
71
+ **参数提取:**
72
+ | 参数 | 提取规则 |
73
+ |------|---------|
74
+ | store | 商家名称(第一句提到) |
75
+ | items | 商品列表,每个包含 name 和 amount |
76
+ | totalAmount | 自动计算总和 |
77
+
78
+ **商品解析示例:**
79
+ 用户:"在沃尔玛买了牛奶30,面包15"
80
+ → items: [
81
+ { name: "牛奶", amount: 30 },
82
+ { name: "面包", amount: 15 }
83
+ ]
84
+ → totalAmount: 45
85
+
86
+ ## 回复格式
87
+
88
+ **成功时,只输出:**
89
+ ```
90
+ ✅ [商品名] ¥[金额] 已录入柴米记账
91
+ ```
92
+
93
+ **示例:**
94
+ - ✅ 牛肉面 ¥25 已录入柴米记账
95
+ - ✅ 咖啡 ¥35 已录入柴米记账
96
+ - ✅ 小票(3件商品)¥58 已录入柴米记账
97
+
98
+ **失败时,输出:**
99
+ ```
100
+ ❌ 记账失败:[错误原因]
101
+ ```
102
+
103
+ ## 注意事项
104
+
105
+ 1. **不要暴露技术细节**:不显示 MCP 工具名、参数、JSON 等
106
+ 2. **自动分类**:根据关键词智能判断分类,不确定时用"其他"
107
+ 3. **金额识别**:支持"元"、"块"、"¥"等格式
108
+ 4. **多商品**:一句话多个商品时,优先使用小票记账
109
+
110
+ ## 配置要求
111
+
112
+ 需要提前配置柴米记账 MCP Server:
113
+
114
+ ```json
115
+ {
116
+ "mcpServers": {
117
+ "chaihuo": {
118
+ "command": "node",
119
+ "args": ["/path/to/caihuo_record_list/mcp-server-local/server.js"],
120
+ "env": {
121
+ "MCP_HUB_URL": "https://xxx.ap-shanghai.app.tcloudbase.com/mcpHub-mcp",
122
+ "MCP_TOKEN": "your-token",
123
+ "MCP_OPENID": "your-openid"
124
+ }
125
+ }
126
+ }
127
+ }
128
+ ```
129
+
130
+ Token 获取方式:微信小程序「柴米记账」→ 我的 → 桌面端记账 → 生成 Token
131
+
132
+ ## 版本
133
+
134
+ - v1.0.0 - 支持单商品记账和小票记账
package/bin/cli.js ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * 柴米记账 MCP Server CLI 入口
5
+ */
6
+
7
+ const path = require('path');
8
+ const { spawn } = require('child_process');
9
+
10
+ // 获取 server.js 的绝对路径
11
+ const serverPath = path.join(__dirname, '..', 'server.js');
12
+
13
+ // 启动 server.js
14
+ const child = spawn('node', [serverPath], {
15
+ stdio: 'inherit',
16
+ env: process.env
17
+ });
18
+
19
+ child.on('exit', (code) => {
20
+ process.exit(code);
21
+ });
package/config.yaml ADDED
@@ -0,0 +1,18 @@
1
+ # 柴米记账 MCP Server 配置文件
2
+ # 请从小程序获取Token并填入下方
3
+
4
+ chaihuo:
5
+ # JWT Token(从小程序调用 mcpAuth 云函数获取)
6
+ # 示例:token: "eyJhbGciOiJIUzI1NiIs..."
7
+ token: ""
8
+
9
+ # SCF函数URL(部署后获取)
10
+ # 示例:base_url: "https://mcpServer-xxx.gz.apigw.tencentcs.com"
11
+ base_url: ""
12
+
13
+ token: "FFeSVyBPLdnGNqaOP2NykCCyPU8ZLSKC6d5R2wkrwKo=" # ← 替换为从 mcpAuth 获取的 token
14
+ base_url: "https://1412172089-4wbwsop8pe.ap-shanghai.tencentscf.com" # ← 替换为 mcpServer 的 HTTP 触发地址
15
+
16
+ # 其他配置保持不变
17
+ port: 3000
18
+ nvironment: "production"
package/install.sh ADDED
@@ -0,0 +1,268 @@
1
+ #!/bin/bash
2
+
3
+ # 柴米记账 MCP Server 一键安装脚本
4
+ # 支持 macOS 和 Linux
5
+ # 用法: curl -fsSL https://chaihuo.io/install.sh | bash
6
+
7
+ set -e
8
+
9
+ # 颜色定义
10
+ RED='\033[0;31m'
11
+ GREEN='\033[0;32m'
12
+ YELLOW='\033[1;33m'
13
+ NC='\033[0m' # No Color
14
+
15
+ # 配置
16
+ INSTALL_DIR="$HOME/.chaihuo-mcp"
17
+ WORKBUDDY_DIR="$HOME/WorkBuddy"
18
+ PYTHON_VERSION="3.10"
19
+ SCF_URL="https://1412172089-4wbwsop8pe.ap-shanghai.tencentscf.com"
20
+
21
+ echo -e "${GREEN}=== 柴米记账 MCP Server 安装脚本 ===${NC}"
22
+ echo ""
23
+
24
+ # 检测操作系统
25
+ OS="$(uname -s)"
26
+ case "${OS}" in
27
+ Linux*) PLATFORM=Linux;;
28
+ Darwin*) PLATFORM=Mac;;
29
+ *) PLATFORM="UNKNOWN:${OS}"
30
+ esac
31
+
32
+ echo -e "${YELLOW}检测到操作系统: ${PLATFORM}${NC}"
33
+
34
+ # 检查并安装 Python 3.10+
35
+ check_python() {
36
+ echo -e "${YELLOW}检查 Python 版本...${NC}"
37
+
38
+ if command -v python3.10 &> /dev/null; then
39
+ PYTHON_CMD="python3.10"
40
+ elif command -v python3.11 &> /dev/null; then
41
+ PYTHON_CMD="python3.11"
42
+ elif command -v python3.12 &> /dev/null; then
43
+ PYTHON_CMD="python3.12"
44
+ elif command -v python3 &> /dev/null; then
45
+ PY_VERSION=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2)
46
+ if (( $(echo "$PY_VERSION >= 3.10" | bc -l) )); then
47
+ PYTHON_CMD="python3"
48
+ else
49
+ PYTHON_CMD=""
50
+ fi
51
+ else
52
+ PYTHON_CMD=""
53
+ fi
54
+
55
+ if [ -z "$PYTHON_CMD" ]; then
56
+ echo -e "${RED}未检测到 Python 3.10+${NC}"
57
+ install_python
58
+ else
59
+ echo -e "${GREEN}找到 Python: $PYTHON_CMD${NC}"
60
+ fi
61
+ }
62
+
63
+ # 安装 Python 3.10
64
+ install_python() {
65
+ echo -e "${YELLOW}正在安装 Python 3.10...${NC}"
66
+
67
+ if [ "$PLATFORM" == "Mac" ]; then
68
+ # macOS
69
+ if command -v brew &> /dev/null; then
70
+ echo "使用 Homebrew 安装 Python 3.10..."
71
+ brew install python@3.10
72
+ PYTHON_CMD="/opt/homebrew/bin/python3.10"
73
+ else
74
+ echo -e "${RED}请先安装 Homebrew: https://brew.sh${NC}"
75
+ exit 1
76
+ fi
77
+ elif [ "$PLATFORM" == "Linux" ]; then
78
+ # Linux
79
+ if command -v apt-get &> /dev/null; then
80
+ echo "使用 apt 安装 Python 3.10..."
81
+ sudo apt-get update
82
+ sudo apt-get install -y python3.10 python3.10-venv python3.10-pip
83
+ PYTHON_CMD="python3.10"
84
+ elif command -v yum &> /dev/null; then
85
+ echo "使用 yum 安装 Python 3.10..."
86
+ sudo yum install -y python310
87
+ PYTHON_CMD="python3.10"
88
+ else
89
+ echo -e "${RED}不支持的 Linux 发行版,请手动安装 Python 3.10+${NC}"
90
+ exit 1
91
+ fi
92
+ else
93
+ echo -e "${RED}不支持的操作系统: ${PLATFORM}${NC}"
94
+ exit 1
95
+ fi
96
+ }
97
+
98
+ # 创建安装目录
99
+ setup_install_dir() {
100
+ echo -e "${YELLOW}创建安装目录...${NC}"
101
+
102
+ if [ -d "$INSTALL_DIR" ]; then
103
+ echo -e "${YELLOW}目录已存在,清理旧文件...${NC}"
104
+ rm -rf "$INSTALL_DIR"
105
+ fi
106
+
107
+ mkdir -p "$INSTALL_DIR"
108
+ echo -e "${GREEN}安装目录: $INSTALL_DIR${NC}"
109
+ }
110
+
111
+ # 创建虚拟环境
112
+ create_venv() {
113
+ echo -e "${YELLOW}创建 Python 虚拟环境...${NC}"
114
+
115
+ $PYTHON_CMD -m venv "$INSTALL_DIR/venv"
116
+ source "$INSTALL_DIR/venv/bin/activate"
117
+
118
+ echo -e "${GREEN}虚拟环境创建成功${NC}"
119
+ }
120
+
121
+ # 安装依赖
122
+ install_dependencies() {
123
+ echo -e "${YELLOW}安装依赖...${NC}"
124
+
125
+ pip install --upgrade pip
126
+ pip install fastmcp>=0.4.0 requests
127
+
128
+ echo -e "${GREEN}依赖安装完成${NC}"
129
+ }
130
+
131
+ # 下载 MCP Server 文件
132
+ download_server() {
133
+ echo -e "${YELLOW}下载 MCP Server...${NC}"
134
+
135
+ # 复制本地文件(如果是本地安装)
136
+ if [ -f "server.py" ]; then
137
+ cp server.py "$INSTALL_DIR/"
138
+ echo -e "${GREEN}使用本地 server.py${NC}"
139
+ else
140
+ # 从远程下载
141
+ echo "从远程下载..."
142
+ curl -fsSL -o "$INSTALL_DIR/server.py" "https://raw.githubusercontent.com/chaihuo/mcp-server/main/server.py"
143
+ echo -e "${GREEN}下载完成${NC}"
144
+ fi
145
+ }
146
+
147
+ # 配置 WorkBuddy
148
+ configure_workbuddy() {
149
+ echo -e "${YELLOW}配置 WorkBuddy...${NC}"
150
+
151
+ if [ ! -d "$WORKBUDDY_DIR" ]; then
152
+ echo -e "${RED}未找到 WorkBuddy 目录: $WORKBUDDY_DIR${NC}"
153
+ echo "请确认 WorkBuddy 已安装,或手动配置 MCP"
154
+ return 1
155
+ fi
156
+
157
+ # 创建 MCP 配置
158
+ mkdir -p "$WORKBUDDY_DIR/mcp"
159
+
160
+ # 复制 server.py 到 WorkBuddy 目录
161
+ cp "$INSTALL_DIR/server.py" "$WORKBUDDY_DIR/mcp/chaihuo-server.py"
162
+
163
+ # 创建配置文件
164
+ cat > "$WORKBUDDY_DIR/mcp_config.json" << EOF
165
+ {
166
+ "mcpServers": {
167
+ "chaihuo": {
168
+ "command": "$INSTALL_DIR/venv/bin/python",
169
+ "args": ["$WORKBUDDY_DIR/mcp/chaihuo-server.py"],
170
+ "env": {
171
+ "SCF_URL": "$SCF_URL"
172
+ }
173
+ }
174
+ }
175
+ }
176
+ EOF
177
+
178
+ echo -e "${GREEN}WorkBuddy 配置完成${NC}"
179
+ echo -e "${YELLOW}配置文件: $WORKBUDDY_DIR/mcp_config.json${NC}"
180
+ }
181
+
182
+ # 生成 JWT Secret
183
+ generate_jwt_secret() {
184
+ echo -e "${YELLOW}生成 JWT Secret...${NC}"
185
+
186
+ JWT_SECRET=$(openssl rand -base64 32)
187
+
188
+ # 更新配置文件
189
+ cat > "$WORKBUDDY_DIR/mcp_config.json" << EOF
190
+ {
191
+ "mcpServers": {
192
+ "chaihuo": {
193
+ "command": "$INSTALL_DIR/venv/bin/python",
194
+ "args": ["$WORKBUDDY_DIR/mcp/chaihuo-server.py"],
195
+ "env": {
196
+ "SCF_URL": "$SCF_URL",
197
+ "JWT_SECRET": "$JWT_SECRET"
198
+ }
199
+ }
200
+ }
201
+ }
202
+ EOF
203
+
204
+ echo -e "${GREEN}JWT Secret 生成成功${NC}"
205
+ echo -e "${YELLOW}请保存以下密钥(用于生成用户 Token):${NC}"
206
+ echo -e "${GREEN}$JWT_SECRET${NC}"
207
+ }
208
+
209
+ # 测试安装
210
+ test_installation() {
211
+ echo -e "${YELLOW}测试安装...${NC}"
212
+
213
+ source "$INSTALL_DIR/venv/bin/activate"
214
+
215
+ if python -c "import fastmcp" 2>/dev/null; then
216
+ echo -e "${GREEN}✓ fastmcp 安装成功${NC}"
217
+ else
218
+ echo -e "${RED}✗ fastmcp 安装失败${NC}"
219
+ return 1
220
+ fi
221
+
222
+ if [ -f "$INSTALL_DIR/server.py" ]; then
223
+ echo -e "${GREEN}✓ server.py 存在${NC}"
224
+ else
225
+ echo -e "${RED}✗ server.py 不存在${NC}"
226
+ return 1
227
+ fi
228
+
229
+ echo -e "${GREEN}安装测试通过!${NC}"
230
+ }
231
+
232
+ # 打印完成信息
233
+ print_finish() {
234
+ echo ""
235
+ echo -e "${GREEN}=== 安装完成!===${NC}"
236
+ echo ""
237
+ echo -e "${YELLOW}下一步操作:${NC}"
238
+ echo "1. 重启 WorkBuddy"
239
+ echo "2. 在 WorkBuddy 中测试记账功能"
240
+ echo ""
241
+ echo -e "${YELLOW}配置信息:${NC}"
242
+ echo "- 安装目录: $INSTALL_DIR"
243
+ echo "- 配置文件: $WORKBUDDY_DIR/mcp_config.json"
244
+ echo "- SCF 地址: $SCF_URL"
245
+ echo ""
246
+ echo -e "${YELLOW}如需卸载,运行:${NC}"
247
+ echo "rm -rf $INSTALL_DIR"
248
+ echo ""
249
+ }
250
+
251
+ # 主流程
252
+ main() {
253
+ echo -e "${GREEN}开始安装柴米记账 MCP Server...${NC}"
254
+ echo ""
255
+
256
+ check_python
257
+ setup_install_dir
258
+ create_venv
259
+ install_dependencies
260
+ download_server
261
+ configure_workbuddy
262
+ generate_jwt_secret
263
+ test_installation
264
+ print_finish
265
+ }
266
+
267
+ # 运行主流程
268
+ main