user-web-feedback
by HyperHeroX
README.md
# 🎯 MCP 使用者反饋收集器
[](https://www.npmjs.com/package/@hirohsu/user-web-feedback)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
基於 Node.js 的現代化 MCP 反饋收集器,支援 AI 工作匯報和使用者反饋收集。
---
** 這是 Fork 自三少科技的專案 ** (https://github.com/sanshao85/mcp-feedback-collector-web)
感謝三少科技的無私奉獻
## 🆕 增強版反饋介面
**全新的增強版使用者介面現已推出!**
### 🌟 核心特性
#### 🎨 三欄式佈局設計
- **左側(30%)**:AI 工作匯報顯示區
- 支援 Markdown 渲染
- 程式碼語法高亮
- 可捲動查看歷史訊息
- **中間(40%)**:使用者互動區
- 文字回應輸入(支援 Ctrl+Enter 快速提交)
- 圖片上傳/貼上功能
- AI 輔助回覆按鈕
- 即時連接狀態顯示(底部中央)
- **右側(30%)**:提示詞管理區
- 提示詞 CRUD 操作
- 搜尋和過濾功能
- 釘選常用提示詞
- AI 設定管理
#### 🤖 AI 輔助回覆(Gemini API)
- 整合 Google Gemini 2.5 Flash API
- 根據 AI 工作匯報自動生成建議回覆
- 可自訂系統提示詞
- 智能重試機制和錯誤處理
- 支援溫度參數和最大 token 數調整
#### 📝 提示詞管理系統
- **CRUD 操作**:創建、讀取、更新、刪除提示詞
- **釘選功能**:釘選常用提示詞,啟動時自動載入
- **分類管理**:支援提示詞分類(選填)
- **搜尋過濾**:快速找到需要的提示詞
- **順序調整**:拖拽調整提示詞顯示順序
- **點擊插入**:點擊提示詞快速插入到輸入區
#### ⏰ 自動回覆機制
- **5 分鐘無活動**:自動觸發 AI 回覆
- **60 秒倒數警告**:提前通知使用者
- **可取消**:使用者可隨時取消自動回覆
- **可調整超時**:通過使用者偏好設定調整超時時間
#### 🔒 資料加密保護
- **AES-256-GCM 加密**:保護 API Key 等敏感資料
- **SQLite 本地儲存**:所有資料本地化儲存
- **密碼派生**:使用 scrypt 從主密碼派生加密金鑰
- **遮罩顯示**:前端僅顯示 API Key 的遮罩版本
#### 🔌 MCP Server 整合
- **多 Server 支援**:同時連接多個 MCP Server
- **三種傳輸方式**:stdio、SSE、Streamable HTTP
- **AI 工具呼叫**:AI 自動識別並呼叫 MCP 工具
- **多輪執行**:最多 5 輪自動工具呼叫
- **進度指示**:即時顯示工具執行狀態
#### 🎯 使用者體驗優化
- **響應式設計**:支援各種螢幕尺寸
- **快捷鍵支援**:Ctrl+Enter 提交、Ctrl+V 貼上圖片
- **即時連接狀態**:WebSocket 連接狀態實時顯示(底部中央對齊)
- **錯誤提示**:友善的錯誤訊息和操作指引
- **自動儲存**:使用者偏好和設定自動保存
### 📖 詳細文檔
完整的使用說明請參閱:[增強版反饋介面指南](.docs/ENHANCED_FEEDBACK_GUIDE.md)
### 🚀 訪問增強版介面
```
http://localhost:3000/index.html
```
---
## ✨ 標準版特性
- 🚀 **一鍵啟動**:使用 `npx @hirohsu/user-web-feedback` 直接運行
- 🎨 **現代界面**:VS Code 深色主題風格的 Web 界面
- 🔧 **MCP 整合**:完整支援 Model Context Protocol
- 💬 **AI 對話功能**:整合 AI 助手,支援文字和圖片對話
- 🖼️ **圖片支援**:完整的圖片上傳、處理和顯示功能
- 📄 **圖片轉文字**:AI 智能圖片描述,提升客戶端兼容性
- 🌐 **跨平台**:支援 Windows、macOS、Linux
- ⚡ **高效能**:解決了 Python 版本的穩定性問題
---
## 📚 教學資源
### 開發過程視頻教程
- **YouTube**:https://youtu.be/Osr1OSMgzlg
- **Bilibili**:https://www.bilibili.com/video/BV1PHTxzSErb/
---
## 🚀 快速開始
### 安裝和運行
```bash
# 直接運行(推薦)
npx @hirohsu/user-web-feedback
# 或者全局安裝
npm install -g @hirohsu/user-web-feedback
user-web-feedback
# 檢查版本
user-web-feedback --version
```
---
## 📦 NPM 發行版本使用指南
### 從 npm 安裝
```bash
# 全局安裝(推薦)
npm install -g @hirohsu/user-web-feedback
# 專案內安裝
npm install @hirohsu/user-web-feedback
```
### 使用 npx 運行(無需安裝)
```bash
# 運行最新版本
npx @hirohsu/user-web-feedback
# 指定版本
npx @hirohsu/user-web-feedback@2.2.0
# 帶參數運行
npx @hirohsu/user-web-feedback --port 8080
```
### 程式化使用
```javascript
// ESM 模組
import { MCPServer, getConfig } from '@hirohsu/user-web-feedback';
const config = getConfig();
const server = new MCPServer(config);
await server.start();
```
### 發行版本特性
- ✅ **獨立運行**:編譯後的 `dist/` 目錄可獨立執行,無需原始碼
- ✅ **安全發行**:不包含敏感資訊、開發檔案或原始碼
- ✅ **版本一致**:CLI、API、Web 介面版本號自動同步
- ✅ **跨平台**:支援 Windows、macOS、Linux
---
### 環境變數配置
創建 `.env` 文件:
```bash
# AI API 配置
MCP_API_KEY="your_api_key_here"
MCP_API_BASE_URL="https://api.ssopen.top" # 中轉站,也可使用 OpenAI 官方 API
MCP_DEFAULT_MODEL="grok-3"
# Web 服務器配置
MCP_WEB_PORT="5000"
MCP_DIALOG_TIMEOUT="60000" # 反饋收集超時時間(秒),範圍:10-60000
# 功能開關
MCP_ENABLE_CHAT="true"
MCP_ENABLE_IMAGE_TO_TEXT="true" # 啟用圖片轉文字功能
# 增強版介面專用配置
MCP_ENCRYPTION_PASSWORD="your-secure-password" # API Key 加密主密碼(強烈建議設定)
# URL 和端口優化配置 (v2.0.7 新增)
MCP_USE_FIXED_URL="true" # 使用固定 URL,不帶會話參數 (預設: true)
MCP_CLEANUP_PORT_ON_START="true" # 啟動時清理端口 (預設: true)
# 多實例支援 (v2.3.0 新增)
# 當端口被佔用時,系統會自動遞增到下一個可用端口
# 例如:5050 被佔用 → 自動使用 5051
# 最多嘗試 20 個連續端口
```
---
## 🔧 使用方法
### 命令行選項
```bash
# 啟動服務器(預設)
npx @hirohsu/user-web-feedback
# 指定端口
npx @hirohsu/user-web-feedback --port 8080
# 僅 Web 模式
npx @hirohsu/user-web-feedback --web
# 測試 collect_feedback 功能
npx @hirohsu/user-web-feedback test-feedback
# 自訂測試內容
npx @hirohsu/user-web-feedback test-feedback -m "我的工作匯報" -t 120
# 健康檢查
npx @hirohsu/user-web-feedback health
# 顯示配置
npx @hirohsu/user-web-feedback config
```
---
## 🔌 Claude Desktop / Cursor 整合
### 方式一:NPM 套件運行(推薦)
在 Claude Desktop 或 Cursor 的 MCP 配置中添加:
```json
{
"mcpServers": {
"user-web-feedback": {
"command": "npx",
"args": ["-y", "@hirohsu/user-web-feedback@latest"],
"env": {
"MCP_API_KEY": "your_api_key_here",
"MCP_API_BASE_URL": "https://api.ssopen.top",
"MCP_DEFAULT_MODEL": "grok-3",
"MCP_WEB_PORT": "5050",
"MCP_DIALOG_TIMEOUT": "60000",
"MCP_ENABLE_IMAGE_TO_TEXT": "true",
"MCP_ENCRYPTION_PASSWORD": "your-secure-password"
}
}
}
}
```
當使用自訂 register 時,請設定:
```json
{
"mcpServers": {
"user-web-feedback": {
"command": "npx",
"args": ["-y", "@hirohsu/user-web-feedback@latest", "--register", "http://localhost:5050"],
"env": {
"MCP_API_KEY": "your_api_key_here",
"MCP_API_BASE_URL": "https://api.ssopen.top",
"MCP_DEFAULT_MODEL": "grok-3",
"MCP_WEB_PORT": "5050",
"MCP_DIALOG_TIMEOUT": "60000",
"MCP_ENABLE_IMAGE_TO_TEXT": "true",
"MCP_ENCRYPTION_PASSWORD": "your-secure-password"
}
}
}
}
```
### 方式二:原始碼運行(本地開發)
如果您複製了原始碼並想直接運行:
```json
{
"mcpServers": {
"user-web-feedback": {
"command": "node",
"args": ["path/to/your/project/dist/cli.js"],
"env": {
"MCP_API_KEY": "your_api_key_here",
"MCP_API_BASE_URL": "https://api.ssopen.top",
"MCP_DEFAULT_MODEL": "grok-3",
"MCP_WEB_PORT": "5050",
"MCP_DIALOG_TIMEOUT": "60000",
"MCP_ENCRYPTION_PASSWORD": "your-secure-password"
}
}
}
}
```
**注意**:
- 將 `path/to/your/project` 替換為您的實際專案路徑
- 確保已運行 `npm run build` 構建專案
- 使用絕對路徑,例如:`d:/zhuomian/nodejsweb/dist/cli.js`
### 方式三:TypeScript 原始碼直接運行(開發模式)
直接運行 TypeScript 原始碼而無需構建:
```json
{
"mcpServers": {
"user-web-feedback": {
"command": "npx",
"args": ["tsx", "path/to/your/project/src/cli.ts"],
"env": {
"MCP_API_KEY": "your_api_key_here",
"MCP_API_BASE_URL": "https://api.ssopen.top",
"MCP_DEFAULT_MODEL": "grok-3",
"MCP_WEB_PORT": "5050",
"MCP_DIALOG_TIMEOUT": "60000",
"NODE_ENV": "development"
}
}
}
}
```
**優點**:無需構建,直接運行原始碼
**缺點**:啟動稍慢,需要 tsx 依賴
### 🚀 快速配置範例
假設您的專案位於 `d:\zhuomian\nodejsweb`,推薦配置:
```json
{
"mcpServers": {
"user-web-feedback": {
"command": "node",
"args": ["d:/zhuomian/nodejsweb/dist/cli.js"],
"env": {
"MCP_API_KEY": "your_api_key_here",
"MCP_API_BASE_URL": "https://api.ssopen.top",
"MCP_DEFAULT_MODEL": "grok-3",
"MCP_WEB_PORT": "5050",
"MCP_DIALOG_TIMEOUT": "60000"
}
}
}
}
```
**配置步驟**:
1. 確保專案已構建:`npm run build`
2. 將上述配置添加到 Cursor 的 MCP 設定中
3. 替換 `your_api_key_here` 為您的實際 API 密鑰
4. 重啟 Cursor,查看 MCP 服務器狀態為綠色
### 在 Cursor 規則中配置
在 Cursor 的規則中可以這樣配置:
```
Whenever you want to ask a question, always call the MCP.
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
```
### ⚠️ 重要提醒
- **不要在 args 中添加 `--debug` 參數**,這會導致 JSON 解析失敗
- Cursor/Claude Desktop 要求極其純淨的 JSON 輸出
- 如需除錯,請在命令行中單獨使用:`npx @hirohsu/user-web-feedback --debug`
### 💡 API 服務推薦
- 預設配置使用 `https://api.ssopen.top` 中轉站,支援多種 AI 模型
- 也可以使用 OpenAI 官方 API:`https://api.openai.com/v1`
- 或其他相容 OpenAI 格式的 API 服務
---
## 🌐 HTTP 傳輸模式(Docker 部署)
除了傳統的 stdio 傳輸模式,本系統現在支援 HTTP 傳輸模式(SSE 和 Streamable HTTP),使其能夠在 Docker 容器中運行並接受遠端 MCP 連線。
### 傳輸模式說明
| 模式 | 描述 | 適用場景 |
|------|------|----------|
| `stdio` | 標準輸入/輸出傳輸(預設) | 本地 MCP 客戶端(Claude Desktop、Cursor) |
| `sse` | Server-Sent Events | Docker 部署、遠端連線 |
| `streamable-http` | Streamable HTTP | Docker 部署、現代 HTTP 串流 |
### 使用方式
#### 命令列啟動
```bash
# 使用 SSE 傳輸模式
npx @hirohsu/user-web-feedback --transport sse
# 使用 Streamable HTTP 傳輸模式
npx @hirohsu/user-web-feedback --transport streamable-http
```
#### 環境變數配置
```bash
# 設定傳輸模式
MCP_TRANSPORT=sse # 或 streamable-http
```
### Docker 部署
#### 使用 Docker Compose(推薦)
```bash
# 啟動服務
docker-compose up -d
# 查看日誌
docker-compose logs -f
```
#### 使用 Docker 直接運行
```bash
# 構建映像
docker build -t user-feedback-web .
# 運行容器
docker run -d \
--name user-feedback-web \
-p 3000:3000 \
-e MCP_TRANSPORT=sse \
-e MCP_WEB_PORT=3000 \
-v ./data:/app/data \
user-feedback-web
```
### HTTP MCP Server 配置範例
#### Claude Desktop / Cursor 配置(連接到 Docker 容器)
使用 SSE 傳輸連接到運行中的 Docker 容器:
```json
{
"mcpServers": {
"user-web-feedback": {
"transport": "sse",
"url": "http://localhost:3000/mcp/sse"
}
}
}
```
使用 Streamable HTTP 傳輸:
```json
{
"mcpServers": {
"user-web-feedback": {
"transport": "streamable-http",
"url": "http://localhost:3000/mcp"
}
}
}
```
#### 遠端伺服器連接
如果 Docker 容器運行在遠端伺服器:
```json
{
"mcpServers": {
"user-web-feedback": {
"transport": "sse",
"url": "http://your-server-ip:3000/mcp/sse"
}
}
}
```
### HTTP 端點說明
| 端點 | 方法 | 描述 |
|------|------|------|
| `/mcp/sse` | GET | SSE 連線端點 |
| `/mcp/message` | POST | SSE 訊息端點 |
| `/mcp` | POST | Streamable HTTP 端點 |
| `/health` | GET | 健康檢查端點 |
### 注意事項
1. **安全性**:HTTP 傳輸模式不包含內建認證,建議在生產環境中使用反向代理(如 nginx)添加 HTTPS 和認證。
2. **網路配置**:確保防火牆允許對應端口的流量。
3. **日誌**:可透過 `LOG_LEVEL` 環境變數調整日誌級別(debug、info、warn、error)。
---
## 🆕 最新功能 (v2.1.3+)
### 🎨 增強版反饋介面(最新)
**完整的介面重構**,提供專業級使用者體驗:
- ✅ **三欄式佈局**:AI 訊息、使用者輸入、提示詞管理
- ✅ **AI 輔助回覆**:整合 Gemini API,自動生成建議回覆
- ✅ **提示詞管理**:CRUD 操作、釘選、搜尋、分類
- ✅ **自動回覆機制**:5 分鐘無活動自動觸發 AI 回覆
- ✅ **資料持久化**:SQLite 本地儲存
- ✅ **API Key 加密**:AES-256-GCM 加密保護
- ✅ **響應式設計**:支援各種螢幕尺寸
- ✅ **即時連接狀態**:WebSocket 狀態顯示(底部中央)
詳細說明:[增強版反饋介面指南](.docs/ENHANCED_FEEDBACK_GUIDE.md)
### 📋 MCP 標準日誌功能
- **完整日誌支援**:實現 MCP 協定標準的日誌功能,完全符合 MCP 規範
- **多級別日誌**:支援 debug、info、notice、warning、error、critical、alert、emergency 八個標準級別
- **客戶端控制**:支援 MCP 客戶端通過 `logging/setLevel` 請求動態設定日誌級別
- **即時通知**:所有日誌自動通過 `notifications/message` 發送到 MCP 客戶端
- **專業輸出**:移除表情符號,提供乾淨專業的日誌輸出,適合生產環境
- **非同步處理**:優化日誌通知的非同步處理,避免未處理的 Promise 拒絕錯誤
- **智能過濾**:根據設定的日誌級別智能過濾輸出內容
### 🔧 重大改進:智能端口衝突解決方案
- **智能端口管理**:自動檢測和解決端口衝突,無需手動介入
- **漸進式進程終止**:優雅終止 → 強制終止 → 多種備用方案
- **自進程識別**:能準確識別和清理自己的僵尸進程
- **跨平台相容**:Windows/macOS/Linux 統一處理機制
- **智能降級**:無法清理時自動尋找替代端口
### 🛡️ 優雅退出處理
- **完整信號處理**:支援 SIGINT、SIGTERM、SIGBREAK(Windows)
- **智能異常處理**:優化未捕獲異常和 Promise 拒絕的處理機制
- **防重複關閉**:添加關閉狀態標誌,避免重複執行關閉流程
- **客戶端通知**:關閉前通知所有連接的客戶端
- **資源清理**:確保所有資源正確釋放,避免僵尸進程
### 🚀 使用者體驗提升
- **詳細日誌**:清晰的進程終止和端口釋放日誌,支援 MCP 標準日誌輸出
- **自動處理**:大部分端口衝突自動解決,智能降級策略
- **智能提示**:明確的狀態提示和錯誤訊息,專業化輸出格式
- **無縫體驗**:使用者無需關心底層端口管理和日誌配置
- **開發友善**:完整的 MCP 協定支援,便於整合和除錯
### 📄 圖片轉文字功能 (v2.1.1)
- **智能圖片描述**:AI 自動將圖片轉換為詳細文字描述
- **相容性提升**:解決部分 MCP 客戶端無法顯示圖片的問題
- **使用者可控**:點擊「圖片轉文本」按鈕主動轉換
- **可編輯描述**:使用者可以修改 AI 生成的圖片描述
- **批次處理**:支援多張圖片同時轉換
### 🎨 UI 簡化優化 (v2.1.1)
- **純文字狀態顯示**:移除旋轉動畫,簡潔直觀
- **智能自動刷新**:預設啟用,無需使用者選擇
- **簡約設計**:符合現代 UI 設計趨勢
### 🔄 會話管理優化 (v2.1.1)
- **智能頁面刷新**:檢測新內容時自動刷新頁面
- **會話自動重置**:解決「對話過期」問題
- **無縫體驗**:3 秒倒數提示
### 🔗 固定 URL 模式 (v2.0.7)
- 使用固定根路徑:`http://localhost:5000`
- 支援多個並發會話
- 便於遠端服務器轉發
---
## 🛠️ MCP 工具函數
### collect_feedback
收集使用者對 AI 工作的反饋:
```typescript
// 基本呼叫(超時時間從環境變數讀取)
collect_feedback("我已經完成了程式碼重構工作,主要改進了效能和可讀性。")
```
**參數說明**:
- `work_summary`(必需):AI 工作匯報內容
**超時時間配置**:
- 超時時間通過環境變數 `MCP_DIALOG_TIMEOUT` 統一配置
- 預設值為 60000 秒(約 16.7 小時)
- 有效範圍:10-60000 秒
**功能**:
- 啟動 Web 界面顯示工作匯報
- 收集使用者文字和圖片反饋
- 返回結構化的反饋資料
- 自動管理服務器生命週期
- 提交反饋後自動關閉標籤頁(3 秒倒數)
### 📋 MCP 日誌功能
本專案完全支援 MCP 協定標準的日誌功能,提供專業級的日誌管理:
**服務器能力聲明**:
- 在 MCP 初始化時自動聲明 `logging` 能力
- 完全符合 MCP 協定規範,支援所有標準日誌級別
- 提供動態日誌級別控制和即時通知功能
**支援的日誌級別**(按優先級排序):
- `emergency` - 緊急情況,系統不可用
- `alert` - 警報資訊,需要立即處理
- `critical` - 關鍵錯誤,嚴重問題
- `error` - 錯誤資訊,功能異常
- `warning` - 警告資訊,潛在問題
- `notice` - 通知資訊,重要事件
- `info` - 一般資訊,常規操作
- `debug` - 除錯資訊,詳細追蹤
**客戶端控制**:
```json
{
"method": "logging/setLevel",
"params": {
"level": "info"
}
}
```
**日誌通知格式**:
```json
{
"method": "notifications/message",
"params": {
"level": "info",
"logger": "user-web-feedback",
"data": {
"message": "服務器啟動成功",
"port": 5000,
"url": "http://localhost:5000"
}
}
}
```
**技術特性**:
- **非同步處理**:優化的非同步日誌處理,避免阻塞主執行緒
- **錯誤恢復**:完善的錯誤處理機制,避免日誌系統影響主功能
- **智能過濾**:根據設定的級別自動過濾日誌輸出
- **結構化資料**:支援複雜物件的日誌記錄,便於除錯分析
這使得 Claude Desktop、Cursor 等 MCP 客戶端能夠接收和處理服務器的日誌資訊,大大提升了開發和除錯體驗。
---
## 🎨 界面特性
### 增強版介面
- **三欄式佈局**:AI 訊息 + 使用者輸入 + 提示詞管理
- **Markdown 渲染**:完整支援 Markdown 語法和程式碼高亮
- **響應式設計**:支援各種螢幕尺寸
- **即時連接狀態**:WebSocket 連接狀態即時顯示(底部中央對齊)
- **多模態支援**:文字 + 圖片組合輸入
- **智能提示**:友善的錯誤訊息和操作指引
### 標準版介面
- **雙標籤頁設計**:工作匯報 + AI 對話
- **VS Code 主題**:深色主題,專業美觀
- **響應式佈局**:支援桌面和行動裝置
- **即時通信**:WebSocket 連接狀態指示
- **多模態支援**:文字 + 圖片組合輸入
- **智能提交確認**:使用者可選擇提交後是否關閉頁面
- **靈活操作**:支援取消提交和多種互動方式
---
## 📋 系統要求
- **Node.js**:18.0.0 或更高版本
- **瀏覽器**:Chrome 90+、Firefox 88+、Safari 14+、Edge 90+
- **作業系統**:Windows 10+、macOS 10.15+、Ubuntu 18.04+
---
## 🔒 安全特性
### 增強版介面專用
- **AES-256-GCM 加密**:保護 API Key 等敏感資料
- **密碼派生**:使用 scrypt 從主密碼派生加密金鑰
- **本地儲存**:SQLite 本地資料庫,不上傳至雲端
- **遮罩顯示**:前端僅顯示 API Key 的部分字元
### 通用安全
- 輸入驗證和檔案大小限制
- CORS 配置和安全標頭
- API 密鑰安全儲存
- 惡意內容基礎檢測
---
## 📊 效能指標
- **啟動時間**:< 3 秒
- **記憶體使用**:< 100MB
- **回應時間**:< 2 秒
- **並發連接**:支援 10 個同時連接
---
## 🐛 故障排除
### 增強版介面相關
#### 問題:API Key 驗證失敗
**解決方法**:
1. 檢查 API Key 是否正確
2. 確認模型名稱是否有效(例如:`gemini-2.0-flash-exp`)
3. 檢查網路連接
4. 查看瀏覽器控制台的錯誤訊息
5. 確認 API URL 是否正確(預設:`https://generativelanguage.googleapis.com/v1beta`)
#### 問題:資料庫初始化失敗
**解決方法**:
1. 檢查 `data` 目錄的寫入權限
2. 確認沒有其他程序正在使用資料庫檔案
3. 刪除損壞的資料庫檔案(`data/feedback.db`)並重新啟動
#### 問題:自動回覆未觸發
**解決方法**:
1. 檢查使用者偏好設定中是否啟用自動回覆
2. 確認 AI 設定已正確配置(API Key、模型名稱)
3. 查看服務器日誌的錯誤訊息
4. 確認網路連接正常
#### 問題:提示詞無法儲存
**解決方法**:
1. 檢查資料庫連接狀態
2. 嘗試刷新頁面
3. 查看瀏覽器控制台的錯誤訊息
4. 確認 `data` 目錄有寫入權限
### 標準版介面相關
#### 1. WebSocket 連接失敗
```bash
# 檢查服務器狀態
npx @hirohsu/user-web-feedback health
# 訪問測試頁面
http://localhost:5000/test.html
# 查看瀏覽器控制台錯誤訊息
```
#### 2. 端口被占用
```bash
# 檢查端口使用情況
netstat -an | grep :5000
# 使用其他端口
npx @hirohsu/user-web-feedback --port 5001
```
#### 3. API 密鑰錯誤
```bash
# 檢查配置
npx @hirohsu/user-web-feedback config
# 設定環境變數
export MCP_API_KEY="your_key_here"
```
#### 4. 權限問題
```bash
# 使用 npx 避免全域安裝權限問題
npx @hirohsu/user-web-feedback
```
詳細的故障排除指南請參考:[TROUBLESHOOTING.md](.docs/TROUBLESHOOTING.md)
---
## 📚 完整文檔
本專案提供了完整的文檔體系,請參考 [📚 文檔索引](.docs/DOCUMENTATION_INDEX.md) 查找您需要的資訊:
- **使用者指南**:[USER_GUIDE.md](.docs/USER_GUIDE.md) - 詳細使用說明
- **增強版指南**:[ENHANCED_FEEDBACK_GUIDE.md](.docs/ENHANCED_FEEDBACK_GUIDE.md) - 增強版介面專用指南
- **配置指南**:[CONFIGURATION.md](.docs/CONFIGURATION.md) - 環境變數配置
- **技術文檔**:[ARCHITECTURE.md](.docs/ARCHITECTURE.md) - 系統架構設計
- **故障排除**:[TROUBLESHOOTING.md](.docs/TROUBLESHOOTING.md) - 問題解決方案
- **版本說明**:[RELEASE_NOTES.md](.docs/RELEASE_NOTES.md) - 版本更新記錄
- **開發文檔**:[DEVELOPMENT.md](.docs/DEVELOPMENT.md) - 開發環境搭建和貢獻指南
- **技術文檔**:[TECHNICAL.md](.docs/TECHNICAL.md) - 系統架構和技術細節
- **更新日誌**:[CHANGELOG.md](.docs/CHANGELOG.md) - 版本變更歷史
---
## 📝 開發
### 本地開發
```bash
# 複製專案
git clone https://github.com/sanshao85/user-web-feedback-web.git
cd user-web-feedback-web
# 安裝依賴
npm install
# 開發模式(即時編譯 TypeScript)
npm run dev
# 構建專案(生成 dist 目錄)
npm run build
# 啟動已構建的專案
npm start
# 測試
npm test
# 健康檢查
npm start health
# 顯示配置
npm start config
```
### MCP 配置測試
構建完成後,您可以使用以下配置在 Cursor 中測試:
```json
{
"mcpServers": {
"user-web-feedback": {
"command": "node",
"args": ["您的專案路徑/dist/cli.js"],
"env": {
"MCP_API_KEY": "your_api_key_here",
"MCP_API_BASE_URL": "https://api.ssopen.top",
"MCP_DEFAULT_MODEL": "grok-3",
"MCP_WEB_PORT": "5050",
"MCP_DIALOG_TIMEOUT": "180",
"MCP_ENCRYPTION_PASSWORD": "your-secure-password"
}
}
}
}
```
### 專案結構
```
src/
├── cli.ts # CLI 入口
├── index.ts # 主入口
├── config/ # 配置管理
├── server/ # 服務器實現
│ ├── mcp-server.ts # MCP 服務器
│ └── web-server.ts # Web 服務器(增強版 API)
├── utils/ # 工具函數
│ ├── crypto-helper.ts # 加密工具(增強版)
│ ├── database.ts # 資料庫工具(增強版)
│ └── ai-service.ts # AI 服務(增強版)
├── types/ # 類型定義
│ └── index.ts # TypeScript 介面
└── static/ # 靜態檔案
├── index.html # 增強版介面(主入口)
├── style.css # 增強版樣式
├── app.js # 增強版邏輯
├── index-enhanced.html # 舊版檔案(備用)
├── style-enhanced.css # 舊版樣式(備用)
└── app-enhanced.js # 舊版邏輯(備用)
```
---
## 📊 專案狀態
- **當前版本**:v2.1.3+(增強版介面)
- **維護狀態**:積極維護
- **支援平台**:Windows、macOS、Linux
- **最新特性**:增強版反饋介面(三欄式佈局、AI 輔助、提示詞管理、自動回覆、資料加密)
- **協定支援**:MCP v2025-03-26、v2024-11-05、v2024-10-07
- **SDK 版本**:@modelcontextprotocol/sdk v1.12.1
---
## 📄 授權
MIT License - 詳見 [LICENSE](LICENSE) 檔案
---
## 🤝 貢獻
歡迎提交 Issue 和 Pull Request!
1. Fork 本儲存庫
2. 創建您的特性分支(`git checkout -b feature/AmazingFeature`)
3. 提交您的更改(`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支(`git push origin feature/AmazingFeature`)
5. 打開一個 Pull Request
---
## 🔗 相關連結
- **原始專案主頁**:[GitHub Repository](hhttps://github.com/sanshao85/mcp-feedback-collector-web)
- **NPM 套件**:[@hirohsu/user-web-feedback](https://www.npmjs.com/package/@hirohsu/user-web-feedback)
- **Model Context Protocol**:[官方網站](https://modelcontextprotocol.io)
- **MCP 規範**:[技術規範](https://spec.modelcontextprotocol.io)
- **Claude Desktop**:[下載地址](https://claude.ai/desktop)
---
## 💝 感謝支持
特別感謝 [https://api.ssopen.top/](https://api.ssopen.top/) API 中轉站,提供 290+ AI 大模型,官方成本七分之一,支援高並發!
---
## 🚀 快速導航
- 🆕 [增強版介面指南](.docs//ENHANCED_FEEDBACK_GUIDE.md) - **最新功能**
- 📖 [使用者指南](.docs/USER_GUIDE.md) - 標準版使用說明
- 🔧 [配置指南](.docs/CONFIGURATION.md) - 環境變數設定
- 🐛 [故障排除](.docs/TROUBLESHOOTING.md) - 常見問題解答
- 🏗️ [技術架構](.docs/ARCHITECTURE.md) - 系統設計文檔
- 📝 [更新日誌](.docs/CHANGELOG.md) - 版本變更歷史
---
**立即體驗增強版介面**:`http://localhost:3000/index.html` 🎉
TDQS
A4.1/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion between tools. The single tool's purpose is clearly stated.
Naming Consistency5/5
The only tool name 'collect_feedback' follows a consistent verb_noun pattern, and there are no other tools to create inconsistency.
Tool Count4/5
A single tool for a focused purpose like collecting user feedback is acceptable, though minimal. It falls within the reasonable low end of the scale.
Completeness2/5
The server only provides a way to collect feedback but lacks any tools for viewing, managing, or deleting collected feedback, leaving significant gaps for typical workflows.
Maintenance
ActivityInactive
ResponsivenessNo issues