@hirohsu/user-web-feedback 2.6.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.
Files changed (36) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +953 -0
  3. package/dist/cli.cjs +95778 -0
  4. package/dist/index.cjs +92818 -0
  5. package/dist/static/app.js +385 -0
  6. package/dist/static/components/navbar.css +406 -0
  7. package/dist/static/components/navbar.html +49 -0
  8. package/dist/static/components/navbar.js +211 -0
  9. package/dist/static/dashboard.css +495 -0
  10. package/dist/static/dashboard.html +95 -0
  11. package/dist/static/dashboard.js +540 -0
  12. package/dist/static/favicon.svg +27 -0
  13. package/dist/static/index.html +541 -0
  14. package/dist/static/logs.html +376 -0
  15. package/dist/static/logs.js +442 -0
  16. package/dist/static/mcp-settings.html +797 -0
  17. package/dist/static/mcp-settings.js +884 -0
  18. package/dist/static/modules/app-core.js +124 -0
  19. package/dist/static/modules/conversation-panel.js +247 -0
  20. package/dist/static/modules/feedback-handler.js +1420 -0
  21. package/dist/static/modules/image-handler.js +155 -0
  22. package/dist/static/modules/log-viewer.js +296 -0
  23. package/dist/static/modules/mcp-manager.js +474 -0
  24. package/dist/static/modules/prompt-manager.js +364 -0
  25. package/dist/static/modules/settings-manager.js +299 -0
  26. package/dist/static/modules/socket-manager.js +170 -0
  27. package/dist/static/modules/state-manager.js +352 -0
  28. package/dist/static/modules/timer-controller.js +243 -0
  29. package/dist/static/modules/ui-helpers.js +246 -0
  30. package/dist/static/settings.html +355 -0
  31. package/dist/static/settings.js +425 -0
  32. package/dist/static/socket.io.min.js +7 -0
  33. package/dist/static/style.css +2157 -0
  34. package/dist/static/terminals.html +357 -0
  35. package/dist/static/terminals.js +321 -0
  36. package/package.json +91 -0
package/README.md ADDED
@@ -0,0 +1,953 @@
1
+ # 🎯 MCP 使用者反饋收集器
2
+
3
+ [![npm version](https://badge.fury.io/js/%40hirohsu%2Fuser-web-feedback.svg)](https://www.npmjs.com/package/@hirohsu/user-web-feedback)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)
6
+
7
+ 基於 Node.js 的現代化 MCP 反饋收集器,支援 AI 工作匯報和使用者反饋收集。
8
+ ---
9
+ ** 這是 Fork 自三少科技的專案 ** (https://github.com/sanshao85/mcp-feedback-collector-web)
10
+ 感謝三少科技的無私奉獻
11
+
12
+ ## 🆕 增強版反饋介面
13
+
14
+ **全新的增強版使用者介面現已推出!**
15
+
16
+ ### 🌟 核心特性
17
+
18
+ #### 🎨 三欄式佈局設計
19
+ - **左側(30%)**:AI 工作匯報顯示區
20
+ - 支援 Markdown 渲染
21
+ - 程式碼語法高亮
22
+ - 可捲動查看歷史訊息
23
+
24
+ - **中間(40%)**:使用者互動區
25
+ - 文字回應輸入(支援 Ctrl+Enter 快速提交)
26
+ - 圖片上傳/貼上功能
27
+ - AI 輔助回覆按鈕
28
+ - 即時連接狀態顯示(底部中央)
29
+
30
+ - **右側(30%)**:提示詞管理區
31
+ - 提示詞 CRUD 操作
32
+ - 搜尋和過濾功能
33
+ - 釘選常用提示詞
34
+ - AI 設定管理
35
+
36
+ #### 🤖 AI 輔助回覆(Gemini API)
37
+ - 整合 Google Gemini 2.5 Flash API
38
+ - 根據 AI 工作匯報自動生成建議回覆
39
+ - 可自訂系統提示詞
40
+ - 智能重試機制和錯誤處理
41
+ - 支援溫度參數和最大 token 數調整
42
+
43
+ #### 📝 提示詞管理系統
44
+ - **CRUD 操作**:創建、讀取、更新、刪除提示詞
45
+ - **釘選功能**:釘選常用提示詞,啟動時自動載入
46
+ - **分類管理**:支援提示詞分類(選填)
47
+ - **搜尋過濾**:快速找到需要的提示詞
48
+ - **順序調整**:拖拽調整提示詞顯示順序
49
+ - **點擊插入**:點擊提示詞快速插入到輸入區
50
+
51
+ #### ⏰ 自動回覆機制
52
+ - **5 分鐘無活動**:自動觸發 AI 回覆
53
+ - **60 秒倒數警告**:提前通知使用者
54
+ - **可取消**:使用者可隨時取消自動回覆
55
+ - **可調整超時**:通過使用者偏好設定調整超時時間
56
+
57
+ #### 🔒 資料加密保護
58
+ - **AES-256-GCM 加密**:保護 API Key 等敏感資料
59
+ - **SQLite 本地儲存**:所有資料本地化儲存
60
+ - **密碼派生**:使用 scrypt 從主密碼派生加密金鑰
61
+ - **遮罩顯示**:前端僅顯示 API Key 的遮罩版本
62
+
63
+ #### 🔌 MCP Server 整合
64
+ - **多 Server 支援**:同時連接多個 MCP Server
65
+ - **三種傳輸方式**:stdio、SSE、Streamable HTTP
66
+ - **AI 工具呼叫**:AI 自動識別並呼叫 MCP 工具
67
+ - **多輪執行**:最多 5 輪自動工具呼叫
68
+ - **進度指示**:即時顯示工具執行狀態
69
+
70
+ #### 🎯 使用者體驗優化
71
+ - **響應式設計**:支援各種螢幕尺寸
72
+ - **快捷鍵支援**:Ctrl+Enter 提交、Ctrl+V 貼上圖片
73
+ - **即時連接狀態**:WebSocket 連接狀態實時顯示(底部中央對齊)
74
+ - **錯誤提示**:友善的錯誤訊息和操作指引
75
+ - **自動儲存**:使用者偏好和設定自動保存
76
+
77
+ ### 📖 詳細文檔
78
+
79
+ 完整的使用說明請參閱:[增強版反饋介面指南](.docs/ENHANCED_FEEDBACK_GUIDE.md)
80
+
81
+ ### 🚀 訪問增強版介面
82
+
83
+ ```
84
+ http://localhost:3000/index.html
85
+ ```
86
+
87
+ ---
88
+
89
+ ## ✨ 標準版特性
90
+
91
+ - 🚀 **一鍵啟動**:使用 `npx @hirohsu/user-web-feedback` 直接運行
92
+ - 🎨 **現代界面**:VS Code 深色主題風格的 Web 界面
93
+ - 🔧 **MCP 整合**:完整支援 Model Context Protocol
94
+ - 💬 **AI 對話功能**:整合 AI 助手,支援文字和圖片對話
95
+ - 🖼️ **圖片支援**:完整的圖片上傳、處理和顯示功能
96
+ - 📄 **圖片轉文字**:AI 智能圖片描述,提升客戶端兼容性
97
+ - 🌐 **跨平台**:支援 Windows、macOS、Linux
98
+ - ⚡ **高效能**:解決了 Python 版本的穩定性問題
99
+
100
+ ---
101
+
102
+ ## 📚 教學資源
103
+
104
+ ### 開發過程視頻教程
105
+ - **YouTube**:https://youtu.be/Osr1OSMgzlg
106
+ - **Bilibili**:https://www.bilibili.com/video/BV1PHTxzSErb/
107
+
108
+ ---
109
+
110
+ ## 🚀 快速開始
111
+
112
+ ### 安裝和運行
113
+
114
+ ```bash
115
+ # 直接運行(推薦)
116
+ npx @hirohsu/user-web-feedback
117
+
118
+ # 或者全局安裝
119
+ npm install -g @hirohsu/user-web-feedback
120
+ user-web-feedback
121
+
122
+ # 檢查版本
123
+ user-web-feedback --version
124
+ ```
125
+
126
+ ---
127
+
128
+ ## 📦 NPM 發行版本使用指南
129
+
130
+ ### 從 npm 安裝
131
+
132
+ ```bash
133
+ # 全局安裝(推薦)
134
+ npm install -g @hirohsu/user-web-feedback
135
+
136
+ # 專案內安裝
137
+ npm install @hirohsu/user-web-feedback
138
+ ```
139
+
140
+ ### 使用 npx 運行(無需安裝)
141
+
142
+ ```bash
143
+ # 運行最新版本
144
+ npx @hirohsu/user-web-feedback
145
+
146
+ # 指定版本
147
+ npx @hirohsu/user-web-feedback@2.2.0
148
+
149
+ # 帶參數運行
150
+ npx @hirohsu/user-web-feedback --port 8080
151
+ ```
152
+
153
+ ### 程式化使用
154
+
155
+ ```javascript
156
+ // ESM 模組
157
+ import { MCPServer, getConfig } from '@hirohsu/user-web-feedback';
158
+
159
+ const config = getConfig();
160
+ const server = new MCPServer(config);
161
+ await server.start();
162
+ ```
163
+
164
+ ### 發行版本特性
165
+
166
+ - ✅ **獨立運行**:編譯後的 `dist/` 目錄可獨立執行,無需原始碼
167
+ - ✅ **安全發行**:不包含敏感資訊、開發檔案或原始碼
168
+ - ✅ **版本一致**:CLI、API、Web 介面版本號自動同步
169
+ - ✅ **跨平台**:支援 Windows、macOS、Linux
170
+
171
+ ---
172
+
173
+ ### 環境變數配置
174
+
175
+ 創建 `.env` 文件:
176
+
177
+ ```bash
178
+ # AI API 配置
179
+ MCP_API_KEY="your_api_key_here"
180
+ MCP_API_BASE_URL="https://api.ssopen.top" # 中轉站,也可使用 OpenAI 官方 API
181
+ MCP_DEFAULT_MODEL="grok-3"
182
+
183
+ # Web 服務器配置
184
+ MCP_WEB_PORT="5000"
185
+ MCP_DIALOG_TIMEOUT="60000" # 反饋收集超時時間(秒),範圍:10-60000
186
+
187
+ # 功能開關
188
+ MCP_ENABLE_CHAT="true"
189
+ MCP_ENABLE_IMAGE_TO_TEXT="true" # 啟用圖片轉文字功能
190
+
191
+ # 增強版介面專用配置
192
+ MCP_ENCRYPTION_PASSWORD="your-secure-password" # API Key 加密主密碼(強烈建議設定)
193
+
194
+ # URL 和端口優化配置 (v2.0.7 新增)
195
+ MCP_USE_FIXED_URL="true" # 使用固定 URL,不帶會話參數 (預設: true)
196
+ MCP_CLEANUP_PORT_ON_START="true" # 啟動時清理端口 (預設: true)
197
+
198
+ # 多實例支援 (v2.3.0 新增)
199
+ # 當端口被佔用時,系統會自動遞增到下一個可用端口
200
+ # 例如:5050 被佔用 → 自動使用 5051
201
+ # 最多嘗試 20 個連續端口
202
+ ```
203
+
204
+ ---
205
+
206
+ ## 🔧 使用方法
207
+
208
+ ### 命令行選項
209
+
210
+ ```bash
211
+ # 啟動服務器(預設)
212
+ npx @hirohsu/user-web-feedback
213
+
214
+ # 指定端口
215
+ npx @hirohsu/user-web-feedback --port 8080
216
+
217
+ # 僅 Web 模式
218
+ npx @hirohsu/user-web-feedback --web
219
+
220
+ # 測試 collect_feedback 功能
221
+ npx @hirohsu/user-web-feedback test-feedback
222
+
223
+ # 自訂測試內容
224
+ npx @hirohsu/user-web-feedback test-feedback -m "我的工作匯報" -t 120
225
+
226
+ # 健康檢查
227
+ npx @hirohsu/user-web-feedback health
228
+
229
+ # 顯示配置
230
+ npx @hirohsu/user-web-feedback config
231
+ ```
232
+
233
+ ---
234
+
235
+ ## 🔌 Claude Desktop / Cursor 整合
236
+
237
+ ### 方式一:NPM 套件運行(推薦)
238
+
239
+ 在 Claude Desktop 或 Cursor 的 MCP 配置中添加:
240
+
241
+ ```json
242
+ {
243
+ "mcpServers": {
244
+ "user-web-feedback": {
245
+ "command": "npx",
246
+ "args": ["-y", "@hirohsu/user-web-feedback@latest"],
247
+ "env": {
248
+ "MCP_API_KEY": "your_api_key_here",
249
+ "MCP_API_BASE_URL": "https://api.ssopen.top",
250
+ "MCP_DEFAULT_MODEL": "grok-3",
251
+ "MCP_WEB_PORT": "5050",
252
+ "MCP_DIALOG_TIMEOUT": "60000",
253
+ "MCP_ENABLE_IMAGE_TO_TEXT": "true",
254
+ "MCP_ENCRYPTION_PASSWORD": "your-secure-password"
255
+ }
256
+ }
257
+ }
258
+ }
259
+ ```
260
+
261
+ 當使用自訂 register 時,請設定:
262
+
263
+ ```json
264
+ {
265
+ "mcpServers": {
266
+ "user-web-feedback": {
267
+ "command": "npx",
268
+ "args": ["-y", "@hirohsu/user-web-feedback@latest", "--register", "http://localhost:5050"],
269
+ "env": {
270
+ "MCP_API_KEY": "your_api_key_here",
271
+ "MCP_API_BASE_URL": "https://api.ssopen.top",
272
+ "MCP_DEFAULT_MODEL": "grok-3",
273
+ "MCP_WEB_PORT": "5050",
274
+ "MCP_DIALOG_TIMEOUT": "60000",
275
+ "MCP_ENABLE_IMAGE_TO_TEXT": "true",
276
+ "MCP_ENCRYPTION_PASSWORD": "your-secure-password"
277
+ }
278
+ }
279
+ }
280
+ }
281
+ ```
282
+
283
+
284
+ ### 方式二:原始碼運行(本地開發)
285
+
286
+ 如果您複製了原始碼並想直接運行:
287
+
288
+ ```json
289
+ {
290
+ "mcpServers": {
291
+ "user-web-feedback": {
292
+ "command": "node",
293
+ "args": ["path/to/your/project/dist/cli.js"],
294
+ "env": {
295
+ "MCP_API_KEY": "your_api_key_here",
296
+ "MCP_API_BASE_URL": "https://api.ssopen.top",
297
+ "MCP_DEFAULT_MODEL": "grok-3",
298
+ "MCP_WEB_PORT": "5050",
299
+ "MCP_DIALOG_TIMEOUT": "60000",
300
+ "MCP_ENCRYPTION_PASSWORD": "your-secure-password"
301
+ }
302
+ }
303
+ }
304
+ }
305
+ ```
306
+
307
+ **注意**:
308
+ - 將 `path/to/your/project` 替換為您的實際專案路徑
309
+ - 確保已運行 `npm run build` 構建專案
310
+ - 使用絕對路徑,例如:`d:/zhuomian/nodejsweb/dist/cli.js`
311
+
312
+ ### 方式三:TypeScript 原始碼直接運行(開發模式)
313
+
314
+ 直接運行 TypeScript 原始碼而無需構建:
315
+
316
+ ```json
317
+ {
318
+ "mcpServers": {
319
+ "user-web-feedback": {
320
+ "command": "npx",
321
+ "args": ["tsx", "path/to/your/project/src/cli.ts"],
322
+ "env": {
323
+ "MCP_API_KEY": "your_api_key_here",
324
+ "MCP_API_BASE_URL": "https://api.ssopen.top",
325
+ "MCP_DEFAULT_MODEL": "grok-3",
326
+ "MCP_WEB_PORT": "5050",
327
+ "MCP_DIALOG_TIMEOUT": "60000",
328
+ "NODE_ENV": "development"
329
+ }
330
+ }
331
+ }
332
+ }
333
+ ```
334
+
335
+ **優點**:無需構建,直接運行原始碼
336
+ **缺點**:啟動稍慢,需要 tsx 依賴
337
+
338
+ ### 🚀 快速配置範例
339
+
340
+ 假設您的專案位於 `d:\zhuomian\nodejsweb`,推薦配置:
341
+
342
+ ```json
343
+ {
344
+ "mcpServers": {
345
+ "user-web-feedback": {
346
+ "command": "node",
347
+ "args": ["d:/zhuomian/nodejsweb/dist/cli.js"],
348
+ "env": {
349
+ "MCP_API_KEY": "your_api_key_here",
350
+ "MCP_API_BASE_URL": "https://api.ssopen.top",
351
+ "MCP_DEFAULT_MODEL": "grok-3",
352
+ "MCP_WEB_PORT": "5050",
353
+ "MCP_DIALOG_TIMEOUT": "60000"
354
+ }
355
+ }
356
+ }
357
+ }
358
+ ```
359
+
360
+ **配置步驟**:
361
+ 1. 確保專案已構建:`npm run build`
362
+ 2. 將上述配置添加到 Cursor 的 MCP 設定中
363
+ 3. 替換 `your_api_key_here` 為您的實際 API 密鑰
364
+ 4. 重啟 Cursor,查看 MCP 服務器狀態為綠色
365
+
366
+ ### 在 Cursor 規則中配置
367
+
368
+ 在 Cursor 的規則中可以這樣配置:
369
+
370
+ ```
371
+ Whenever you want to ask a question, always call the MCP.
372
+
373
+ Whenever you're about to complete a user request, call the MCP instead of simply ending the process. Keep calling MCP until the user's feedback is empty, then end the request. user-web-feedback.collect_feedback
374
+ ```
375
+
376
+ ### ⚠️ 重要提醒
377
+
378
+ - **不要在 args 中添加 `--debug` 參數**,這會導致 JSON 解析失敗
379
+ - Cursor/Claude Desktop 要求極其純淨的 JSON 輸出
380
+ - 如需除錯,請在命令行中單獨使用:`npx @hirohsu/user-web-feedback --debug`
381
+
382
+ ### 💡 API 服務推薦
383
+
384
+ - 預設配置使用 `https://api.ssopen.top` 中轉站,支援多種 AI 模型
385
+ - 也可以使用 OpenAI 官方 API:`https://api.openai.com/v1`
386
+ - 或其他相容 OpenAI 格式的 API 服務
387
+
388
+ ---
389
+
390
+ ## 🌐 HTTP 傳輸模式(Docker 部署)
391
+
392
+ 除了傳統的 stdio 傳輸模式,本系統現在支援 HTTP 傳輸模式(SSE 和 Streamable HTTP),使其能夠在 Docker 容器中運行並接受遠端 MCP 連線。
393
+
394
+ ### 傳輸模式說明
395
+
396
+ | 模式 | 描述 | 適用場景 |
397
+ |------|------|----------|
398
+ | `stdio` | 標準輸入/輸出傳輸(預設) | 本地 MCP 客戶端(Claude Desktop、Cursor) |
399
+ | `sse` | Server-Sent Events | Docker 部署、遠端連線 |
400
+ | `streamable-http` | Streamable HTTP | Docker 部署、現代 HTTP 串流 |
401
+
402
+ ### 使用方式
403
+
404
+ #### 命令列啟動
405
+
406
+ ```bash
407
+ # 使用 SSE 傳輸模式
408
+ npx @hirohsu/user-web-feedback --transport sse
409
+
410
+ # 使用 Streamable HTTP 傳輸模式
411
+ npx @hirohsu/user-web-feedback --transport streamable-http
412
+ ```
413
+
414
+ #### 環境變數配置
415
+
416
+ ```bash
417
+ # 設定傳輸模式
418
+ MCP_TRANSPORT=sse # 或 streamable-http
419
+ ```
420
+
421
+ ### Docker 部署
422
+
423
+ #### 使用 Docker Compose(推薦)
424
+
425
+ ```bash
426
+ # 啟動服務
427
+ docker-compose up -d
428
+
429
+ # 查看日誌
430
+ docker-compose logs -f
431
+ ```
432
+
433
+ #### 使用 Docker 直接運行
434
+
435
+ ```bash
436
+ # 構建映像
437
+ docker build -t user-feedback-web .
438
+
439
+ # 運行容器
440
+ docker run -d \
441
+ --name user-feedback-web \
442
+ -p 3000:3000 \
443
+ -e MCP_TRANSPORT=sse \
444
+ -e MCP_WEB_PORT=3000 \
445
+ -v ./data:/app/data \
446
+ user-feedback-web
447
+ ```
448
+
449
+ ### HTTP MCP Server 配置範例
450
+
451
+ #### Claude Desktop / Cursor 配置(連接到 Docker 容器)
452
+
453
+ 使用 SSE 傳輸連接到運行中的 Docker 容器:
454
+
455
+ ```json
456
+ {
457
+ "mcpServers": {
458
+ "user-web-feedback": {
459
+ "transport": "sse",
460
+ "url": "http://localhost:3000/mcp/sse"
461
+ }
462
+ }
463
+ }
464
+ ```
465
+
466
+ 使用 Streamable HTTP 傳輸:
467
+
468
+ ```json
469
+ {
470
+ "mcpServers": {
471
+ "user-web-feedback": {
472
+ "transport": "streamable-http",
473
+ "url": "http://localhost:3000/mcp"
474
+ }
475
+ }
476
+ }
477
+ ```
478
+
479
+ #### 遠端伺服器連接
480
+
481
+ 如果 Docker 容器運行在遠端伺服器:
482
+
483
+ ```json
484
+ {
485
+ "mcpServers": {
486
+ "user-web-feedback": {
487
+ "transport": "sse",
488
+ "url": "http://your-server-ip:3000/mcp/sse"
489
+ }
490
+ }
491
+ }
492
+ ```
493
+
494
+ ### HTTP 端點說明
495
+
496
+ | 端點 | 方法 | 描述 |
497
+ |------|------|------|
498
+ | `/mcp/sse` | GET | SSE 連線端點 |
499
+ | `/mcp/message` | POST | SSE 訊息端點 |
500
+ | `/mcp` | POST | Streamable HTTP 端點 |
501
+ | `/health` | GET | 健康檢查端點 |
502
+
503
+ ### 注意事項
504
+
505
+ 1. **安全性**:HTTP 傳輸模式不包含內建認證,建議在生產環境中使用反向代理(如 nginx)添加 HTTPS 和認證。
506
+
507
+ 2. **網路配置**:確保防火牆允許對應端口的流量。
508
+
509
+ 3. **日誌**:可透過 `LOG_LEVEL` 環境變數調整日誌級別(debug、info、warn、error)。
510
+
511
+ ---
512
+
513
+ ## 🆕 最新功能 (v2.1.3+)
514
+
515
+ ### 🎨 增強版反饋介面(最新)
516
+
517
+ **完整的介面重構**,提供專業級使用者體驗:
518
+
519
+ - ✅ **三欄式佈局**:AI 訊息、使用者輸入、提示詞管理
520
+ - ✅ **AI 輔助回覆**:整合 Gemini API,自動生成建議回覆
521
+ - ✅ **提示詞管理**:CRUD 操作、釘選、搜尋、分類
522
+ - ✅ **自動回覆機制**:5 分鐘無活動自動觸發 AI 回覆
523
+ - ✅ **資料持久化**:SQLite 本地儲存
524
+ - ✅ **API Key 加密**:AES-256-GCM 加密保護
525
+ - ✅ **響應式設計**:支援各種螢幕尺寸
526
+ - ✅ **即時連接狀態**:WebSocket 狀態顯示(底部中央)
527
+
528
+ 詳細說明:[增強版反饋介面指南](.docs/ENHANCED_FEEDBACK_GUIDE.md)
529
+
530
+ ### 📋 MCP 標準日誌功能
531
+
532
+ - **完整日誌支援**:實現 MCP 協定標準的日誌功能,完全符合 MCP 規範
533
+ - **多級別日誌**:支援 debug、info、notice、warning、error、critical、alert、emergency 八個標準級別
534
+ - **客戶端控制**:支援 MCP 客戶端通過 `logging/setLevel` 請求動態設定日誌級別
535
+ - **即時通知**:所有日誌自動通過 `notifications/message` 發送到 MCP 客戶端
536
+ - **專業輸出**:移除表情符號,提供乾淨專業的日誌輸出,適合生產環境
537
+ - **非同步處理**:優化日誌通知的非同步處理,避免未處理的 Promise 拒絕錯誤
538
+ - **智能過濾**:根據設定的日誌級別智能過濾輸出內容
539
+
540
+ ### 🔧 重大改進:智能端口衝突解決方案
541
+
542
+ - **智能端口管理**:自動檢測和解決端口衝突,無需手動介入
543
+ - **漸進式進程終止**:優雅終止 → 強制終止 → 多種備用方案
544
+ - **自進程識別**:能準確識別和清理自己的僵尸進程
545
+ - **跨平台相容**:Windows/macOS/Linux 統一處理機制
546
+ - **智能降級**:無法清理時自動尋找替代端口
547
+
548
+ ### 🛡️ 優雅退出處理
549
+
550
+ - **完整信號處理**:支援 SIGINT、SIGTERM、SIGBREAK(Windows)
551
+ - **智能異常處理**:優化未捕獲異常和 Promise 拒絕的處理機制
552
+ - **防重複關閉**:添加關閉狀態標誌,避免重複執行關閉流程
553
+ - **客戶端通知**:關閉前通知所有連接的客戶端
554
+ - **資源清理**:確保所有資源正確釋放,避免僵尸進程
555
+
556
+ ### 🚀 使用者體驗提升
557
+
558
+ - **詳細日誌**:清晰的進程終止和端口釋放日誌,支援 MCP 標準日誌輸出
559
+ - **自動處理**:大部分端口衝突自動解決,智能降級策略
560
+ - **智能提示**:明確的狀態提示和錯誤訊息,專業化輸出格式
561
+ - **無縫體驗**:使用者無需關心底層端口管理和日誌配置
562
+ - **開發友善**:完整的 MCP 協定支援,便於整合和除錯
563
+
564
+ ### 📄 圖片轉文字功能 (v2.1.1)
565
+
566
+ - **智能圖片描述**:AI 自動將圖片轉換為詳細文字描述
567
+ - **相容性提升**:解決部分 MCP 客戶端無法顯示圖片的問題
568
+ - **使用者可控**:點擊「圖片轉文本」按鈕主動轉換
569
+ - **可編輯描述**:使用者可以修改 AI 生成的圖片描述
570
+ - **批次處理**:支援多張圖片同時轉換
571
+
572
+ ### 🎨 UI 簡化優化 (v2.1.1)
573
+
574
+ - **純文字狀態顯示**:移除旋轉動畫,簡潔直觀
575
+ - **智能自動刷新**:預設啟用,無需使用者選擇
576
+ - **簡約設計**:符合現代 UI 設計趨勢
577
+
578
+ ### 🔄 會話管理優化 (v2.1.1)
579
+
580
+ - **智能頁面刷新**:檢測新內容時自動刷新頁面
581
+ - **會話自動重置**:解決「對話過期」問題
582
+ - **無縫體驗**:3 秒倒數提示
583
+
584
+ ### 🔗 固定 URL 模式 (v2.0.7)
585
+
586
+ - 使用固定根路徑:`http://localhost:5000`
587
+ - 支援多個並發會話
588
+ - 便於遠端服務器轉發
589
+
590
+ ---
591
+
592
+ ## 🛠️ MCP 工具函數
593
+
594
+ ### collect_feedback
595
+
596
+ 收集使用者對 AI 工作的反饋:
597
+
598
+ ```typescript
599
+ // 基本呼叫(超時時間從環境變數讀取)
600
+ collect_feedback("我已經完成了程式碼重構工作,主要改進了效能和可讀性。")
601
+ ```
602
+
603
+ **參數說明**:
604
+ - `work_summary`(必需):AI 工作匯報內容
605
+
606
+ **超時時間配置**:
607
+ - 超時時間通過環境變數 `MCP_DIALOG_TIMEOUT` 統一配置
608
+ - 預設值為 60000 秒(約 16.7 小時)
609
+ - 有效範圍:10-60000 秒
610
+
611
+ **功能**:
612
+ - 啟動 Web 界面顯示工作匯報
613
+ - 收集使用者文字和圖片反饋
614
+ - 返回結構化的反饋資料
615
+ - 自動管理服務器生命週期
616
+ - 提交反饋後自動關閉標籤頁(3 秒倒數)
617
+
618
+ ### 📋 MCP 日誌功能
619
+
620
+ 本專案完全支援 MCP 協定標準的日誌功能,提供專業級的日誌管理:
621
+
622
+ **服務器能力聲明**:
623
+ - 在 MCP 初始化時自動聲明 `logging` 能力
624
+ - 完全符合 MCP 協定規範,支援所有標準日誌級別
625
+ - 提供動態日誌級別控制和即時通知功能
626
+
627
+ **支援的日誌級別**(按優先級排序):
628
+ - `emergency` - 緊急情況,系統不可用
629
+ - `alert` - 警報資訊,需要立即處理
630
+ - `critical` - 關鍵錯誤,嚴重問題
631
+ - `error` - 錯誤資訊,功能異常
632
+ - `warning` - 警告資訊,潛在問題
633
+ - `notice` - 通知資訊,重要事件
634
+ - `info` - 一般資訊,常規操作
635
+ - `debug` - 除錯資訊,詳細追蹤
636
+
637
+ **客戶端控制**:
638
+ ```json
639
+ {
640
+ "method": "logging/setLevel",
641
+ "params": {
642
+ "level": "info"
643
+ }
644
+ }
645
+ ```
646
+
647
+ **日誌通知格式**:
648
+ ```json
649
+ {
650
+ "method": "notifications/message",
651
+ "params": {
652
+ "level": "info",
653
+ "logger": "user-web-feedback",
654
+ "data": {
655
+ "message": "服務器啟動成功",
656
+ "port": 5000,
657
+ "url": "http://localhost:5000"
658
+ }
659
+ }
660
+ }
661
+ ```
662
+
663
+ **技術特性**:
664
+ - **非同步處理**:優化的非同步日誌處理,避免阻塞主執行緒
665
+ - **錯誤恢復**:完善的錯誤處理機制,避免日誌系統影響主功能
666
+ - **智能過濾**:根據設定的級別自動過濾日誌輸出
667
+ - **結構化資料**:支援複雜物件的日誌記錄,便於除錯分析
668
+
669
+ 這使得 Claude Desktop、Cursor 等 MCP 客戶端能夠接收和處理服務器的日誌資訊,大大提升了開發和除錯體驗。
670
+
671
+ ---
672
+
673
+ ## 🎨 界面特性
674
+
675
+ ### 增強版介面
676
+ - **三欄式佈局**:AI 訊息 + 使用者輸入 + 提示詞管理
677
+ - **Markdown 渲染**:完整支援 Markdown 語法和程式碼高亮
678
+ - **響應式設計**:支援各種螢幕尺寸
679
+ - **即時連接狀態**:WebSocket 連接狀態即時顯示(底部中央對齊)
680
+ - **多模態支援**:文字 + 圖片組合輸入
681
+ - **智能提示**:友善的錯誤訊息和操作指引
682
+
683
+ ### 標準版介面
684
+ - **雙標籤頁設計**:工作匯報 + AI 對話
685
+ - **VS Code 主題**:深色主題,專業美觀
686
+ - **響應式佈局**:支援桌面和行動裝置
687
+ - **即時通信**:WebSocket 連接狀態指示
688
+ - **多模態支援**:文字 + 圖片組合輸入
689
+ - **智能提交確認**:使用者可選擇提交後是否關閉頁面
690
+ - **靈活操作**:支援取消提交和多種互動方式
691
+
692
+ ---
693
+
694
+ ## 📋 系統要求
695
+
696
+ - **Node.js**:18.0.0 或更高版本
697
+ - **瀏覽器**:Chrome 90+、Firefox 88+、Safari 14+、Edge 90+
698
+ - **作業系統**:Windows 10+、macOS 10.15+、Ubuntu 18.04+
699
+
700
+ ---
701
+
702
+ ## 🔒 安全特性
703
+
704
+ ### 增強版介面專用
705
+ - **AES-256-GCM 加密**:保護 API Key 等敏感資料
706
+ - **密碼派生**:使用 scrypt 從主密碼派生加密金鑰
707
+ - **本地儲存**:SQLite 本地資料庫,不上傳至雲端
708
+ - **遮罩顯示**:前端僅顯示 API Key 的部分字元
709
+
710
+ ### 通用安全
711
+ - 輸入驗證和檔案大小限制
712
+ - CORS 配置和安全標頭
713
+ - API 密鑰安全儲存
714
+ - 惡意內容基礎檢測
715
+
716
+ ---
717
+
718
+ ## 📊 效能指標
719
+
720
+ - **啟動時間**:< 3 秒
721
+ - **記憶體使用**:< 100MB
722
+ - **回應時間**:< 2 秒
723
+ - **並發連接**:支援 10 個同時連接
724
+
725
+ ---
726
+
727
+ ## 🐛 故障排除
728
+
729
+ ### 增強版介面相關
730
+
731
+ #### 問題:API Key 驗證失敗
732
+ **解決方法**:
733
+ 1. 檢查 API Key 是否正確
734
+ 2. 確認模型名稱是否有效(例如:`gemini-2.0-flash-exp`)
735
+ 3. 檢查網路連接
736
+ 4. 查看瀏覽器控制台的錯誤訊息
737
+ 5. 確認 API URL 是否正確(預設:`https://generativelanguage.googleapis.com/v1beta`)
738
+
739
+ #### 問題:資料庫初始化失敗
740
+ **解決方法**:
741
+ 1. 檢查 `data` 目錄的寫入權限
742
+ 2. 確認沒有其他程序正在使用資料庫檔案
743
+ 3. 刪除損壞的資料庫檔案(`data/feedback.db`)並重新啟動
744
+
745
+ #### 問題:自動回覆未觸發
746
+ **解決方法**:
747
+ 1. 檢查使用者偏好設定中是否啟用自動回覆
748
+ 2. 確認 AI 設定已正確配置(API Key、模型名稱)
749
+ 3. 查看服務器日誌的錯誤訊息
750
+ 4. 確認網路連接正常
751
+
752
+ #### 問題:提示詞無法儲存
753
+ **解決方法**:
754
+ 1. 檢查資料庫連接狀態
755
+ 2. 嘗試刷新頁面
756
+ 3. 查看瀏覽器控制台的錯誤訊息
757
+ 4. 確認 `data` 目錄有寫入權限
758
+
759
+ ### 標準版介面相關
760
+
761
+ #### 1. WebSocket 連接失敗
762
+ ```bash
763
+ # 檢查服務器狀態
764
+ npx @hirohsu/user-web-feedback health
765
+
766
+ # 訪問測試頁面
767
+ http://localhost:5000/test.html
768
+
769
+ # 查看瀏覽器控制台錯誤訊息
770
+ ```
771
+
772
+ #### 2. 端口被占用
773
+ ```bash
774
+ # 檢查端口使用情況
775
+ netstat -an | grep :5000
776
+
777
+ # 使用其他端口
778
+ npx @hirohsu/user-web-feedback --port 5001
779
+ ```
780
+
781
+ #### 3. API 密鑰錯誤
782
+ ```bash
783
+ # 檢查配置
784
+ npx @hirohsu/user-web-feedback config
785
+
786
+ # 設定環境變數
787
+ export MCP_API_KEY="your_key_here"
788
+ ```
789
+
790
+ #### 4. 權限問題
791
+ ```bash
792
+ # 使用 npx 避免全域安裝權限問題
793
+ npx @hirohsu/user-web-feedback
794
+ ```
795
+
796
+ 詳細的故障排除指南請參考:[TROUBLESHOOTING.md](.docs/TROUBLESHOOTING.md)
797
+
798
+ ---
799
+
800
+ ## 📚 完整文檔
801
+
802
+ 本專案提供了完整的文檔體系,請參考 [📚 文檔索引](.docs/DOCUMENTATION_INDEX.md) 查找您需要的資訊:
803
+
804
+ - **使用者指南**:[USER_GUIDE.md](.docs/USER_GUIDE.md) - 詳細使用說明
805
+ - **增強版指南**:[ENHANCED_FEEDBACK_GUIDE.md](.docs/ENHANCED_FEEDBACK_GUIDE.md) - 增強版介面專用指南
806
+ - **配置指南**:[CONFIGURATION.md](.docs/CONFIGURATION.md) - 環境變數配置
807
+ - **技術文檔**:[ARCHITECTURE.md](.docs/ARCHITECTURE.md) - 系統架構設計
808
+ - **故障排除**:[TROUBLESHOOTING.md](.docs/TROUBLESHOOTING.md) - 問題解決方案
809
+ - **版本說明**:[RELEASE_NOTES.md](.docs/RELEASE_NOTES.md) - 版本更新記錄
810
+ - **開發文檔**:[DEVELOPMENT.md](.docs/DEVELOPMENT.md) - 開發環境搭建和貢獻指南
811
+ - **技術文檔**:[TECHNICAL.md](.docs/TECHNICAL.md) - 系統架構和技術細節
812
+ - **更新日誌**:[CHANGELOG.md](.docs/CHANGELOG.md) - 版本變更歷史
813
+
814
+ ---
815
+
816
+ ## 📝 開發
817
+
818
+ ### 本地開發
819
+
820
+ ```bash
821
+ # 複製專案
822
+ git clone https://github.com/sanshao85/user-web-feedback-web.git
823
+ cd user-web-feedback-web
824
+
825
+ # 安裝依賴
826
+ npm install
827
+
828
+ # 開發模式(即時編譯 TypeScript)
829
+ npm run dev
830
+
831
+ # 構建專案(生成 dist 目錄)
832
+ npm run build
833
+
834
+ # 啟動已構建的專案
835
+ npm start
836
+
837
+ # 測試
838
+ npm test
839
+
840
+ # 健康檢查
841
+ npm start health
842
+
843
+ # 顯示配置
844
+ npm start config
845
+ ```
846
+
847
+ ### MCP 配置測試
848
+
849
+ 構建完成後,您可以使用以下配置在 Cursor 中測試:
850
+
851
+ ```json
852
+ {
853
+ "mcpServers": {
854
+ "user-web-feedback": {
855
+ "command": "node",
856
+ "args": ["您的專案路徑/dist/cli.js"],
857
+ "env": {
858
+ "MCP_API_KEY": "your_api_key_here",
859
+ "MCP_API_BASE_URL": "https://api.ssopen.top",
860
+ "MCP_DEFAULT_MODEL": "grok-3",
861
+ "MCP_WEB_PORT": "5050",
862
+ "MCP_DIALOG_TIMEOUT": "180",
863
+ "MCP_ENCRYPTION_PASSWORD": "your-secure-password"
864
+ }
865
+ }
866
+ }
867
+ }
868
+ ```
869
+
870
+ ### 專案結構
871
+
872
+ ```
873
+ src/
874
+ ├── cli.ts # CLI 入口
875
+ ├── index.ts # 主入口
876
+ ├── config/ # 配置管理
877
+ ├── server/ # 服務器實現
878
+ │ ├── mcp-server.ts # MCP 服務器
879
+ │ └── web-server.ts # Web 服務器(增強版 API)
880
+ ├── utils/ # 工具函數
881
+ │ ├── crypto-helper.ts # 加密工具(增強版)
882
+ │ ├── database.ts # 資料庫工具(增強版)
883
+ │ └── ai-service.ts # AI 服務(增強版)
884
+ ├── types/ # 類型定義
885
+ │ └── index.ts # TypeScript 介面
886
+ └── static/ # 靜態檔案
887
+ ├── index.html # 增強版介面(主入口)
888
+ ├── style.css # 增強版樣式
889
+ ├── app.js # 增強版邏輯
890
+ ├── index-enhanced.html # 舊版檔案(備用)
891
+ ├── style-enhanced.css # 舊版樣式(備用)
892
+ └── app-enhanced.js # 舊版邏輯(備用)
893
+ ```
894
+
895
+ ---
896
+
897
+ ## 📊 專案狀態
898
+
899
+ - **當前版本**:v2.1.3+(增強版介面)
900
+ - **維護狀態**:積極維護
901
+ - **支援平台**:Windows、macOS、Linux
902
+ - **最新特性**:增強版反饋介面(三欄式佈局、AI 輔助、提示詞管理、自動回覆、資料加密)
903
+ - **協定支援**:MCP v2025-03-26、v2024-11-05、v2024-10-07
904
+ - **SDK 版本**:@modelcontextprotocol/sdk v1.12.1
905
+
906
+ ---
907
+
908
+ ## 📄 授權
909
+
910
+ MIT License - 詳見 [LICENSE](LICENSE) 檔案
911
+
912
+ ---
913
+
914
+ ## 🤝 貢獻
915
+
916
+ 歡迎提交 Issue 和 Pull Request!
917
+
918
+ 1. Fork 本儲存庫
919
+ 2. 創建您的特性分支(`git checkout -b feature/AmazingFeature`)
920
+ 3. 提交您的更改(`git commit -m 'Add some AmazingFeature'`)
921
+ 4. 推送到分支(`git push origin feature/AmazingFeature`)
922
+ 5. 打開一個 Pull Request
923
+
924
+ ---
925
+
926
+ ## 🔗 相關連結
927
+
928
+ - **原始專案主頁**:[GitHub Repository](hhttps://github.com/sanshao85/mcp-feedback-collector-web)
929
+ - **NPM 套件**:[@hirohsu/user-web-feedback](https://www.npmjs.com/package/@hirohsu/user-web-feedback)
930
+ - **Model Context Protocol**:[官方網站](https://modelcontextprotocol.io)
931
+ - **MCP 規範**:[技術規範](https://spec.modelcontextprotocol.io)
932
+ - **Claude Desktop**:[下載地址](https://claude.ai/desktop)
933
+
934
+ ---
935
+
936
+ ## 💝 感謝支持
937
+
938
+ 特別感謝 [https://api.ssopen.top/](https://api.ssopen.top/) API 中轉站,提供 290+ AI 大模型,官方成本七分之一,支援高並發!
939
+
940
+ ---
941
+
942
+ ## 🚀 快速導航
943
+
944
+ - 🆕 [增強版介面指南](.docs//ENHANCED_FEEDBACK_GUIDE.md) - **最新功能**
945
+ - 📖 [使用者指南](.docs/USER_GUIDE.md) - 標準版使用說明
946
+ - 🔧 [配置指南](.docs/CONFIGURATION.md) - 環境變數設定
947
+ - 🐛 [故障排除](.docs/TROUBLESHOOTING.md) - 常見問題解答
948
+ - 🏗️ [技術架構](.docs/ARCHITECTURE.md) - 系統設計文檔
949
+ - 📝 [更新日誌](.docs/CHANGELOG.md) - 版本變更歷史
950
+
951
+ ---
952
+
953
+ **立即體驗增強版介面**:`http://localhost:3000/index.html` 🎉