mcp-feedback-enhanced/README.zh-TW.md
2025-06-02 13:24:34 +08:00

523 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Interactive Feedback MCP互動回饋 MCP
**🌐 語言切換 / Language:** [English](README.md) | **繁體中文**
**原作者:** [Fábio Ferreira](https://x.com/fabiomlferreira) | [原始專案](https://github.com/noopstudios/interactive-feedback-mcp) ⭐
**分支版本:** [Minidoracat](https://github.com/Minidoracat)
**UI 設計參考:** [sanshao85/mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector) - 感謝提供現代化界面設計靈感
**相關資源:** [dotcursorrules.com](https://dotcursorrules.com/) 提供更多 AI 開發增強工具
這是一個簡單的 [MCP 伺服器](https://modelcontextprotocol.io/),用於在 AI 輔助開發工具(如 [Cursor](https://www.cursor.com)中實現人在回路human-in-the-loop的工作流程。該伺服器允許您執行命令、查看輸出並直接向 AI 提供文字回饋和圖片。同時支援 [Cline](https://cline.bot) 和 [Windsurf](https://windsurf.com)。
## ✨ 新功能特色
### 🌐 完整的 SSH Remote 支援
- **自動環境檢測**:智能檢測運行環境並選擇適當介面
- **本地環境**:使用原有的 Qt GUI 介面
- **SSH Remote 環境**:自動切換到現代化 Web UI
- **即時通訊**:基於 WebSocket 的即時命令輸出和回饋
- **深色主題**:提供現代化的深色主題界面
### 🖼️ 圖片上傳支援
- **多格式支援**PNG、JPG、JPEG、GIF、BMP、WebP
- **拖拽上傳**:支援拖拽文件到介面
- **剪貼板支援**:直接從剪貼板粘貼圖片
- **自動壓縮**:智能壓縮大圖片以符合 1MB 限制
- **MCP 整合**:圖片自動轉換為 MCP Image 對象
### 🛡️ 穩定性改善
- **編碼修復**:完全解決中文字符亂碼問題
- **調試控制**:可控制的調試輸出,避免 JSON 解析錯誤
- **錯誤處理**:強化錯誤處理,確保程序穩定運行
- **輸出隔離**:嚴格隔離調試輸出與 MCP 通信
### 🌏 多語言支援
- **完整國際化**:採用結構化 JSON 翻譯檔案的完整多語言支援
- **支援語言**:繁體中文、英文、簡體中文
- **智能偵測**:根據系統語言環境自動偵測
- **易於擴充**:基於 JSON 的簡單翻譯系統,方便新增語言
- **向後兼容**:與現有程式碼完全向後兼容
## 🖥️ 介面預覽
### Qt GUI 介面(本地環境)
![Qt GUI Interface - Traditional Chinese](docs/images/gui-zh-tw.png)
### Web UI 介面SSH Remote 環境)
![Web UI Interface - Traditional Chinese](docs/images/web-zh-tw.png)
兩種介面都支援:
- 💬 文字回饋輸入
- 🖼️ 圖片上傳(支援拖拽、剪貼板粘貼)
- ⚡ 即時命令執行
- ⌨️ **快捷鍵支援**
- Ctrl+Enter 快速提交回饋(支援主鍵盤和數字鍵盤)
- Ctrl+V 直接在回饋對話框中貼上剪貼板圖片
- 🎨 現代化深色主題
- 📱 響應式設計Web UI
- 🌐 多語言支援(繁體中文、英文、簡體中文)
## 🎯 為什麼使用這個工具?
透過引導 AI 助手與用戶進行確認,而非進行推測性的高成本工具調用,此模組可以大幅減少平台(如 Cursor上的付費請求次數。在某些情況下它可以將多達 25 次工具調用合併為單次回饋導向的請求,節省資源並提升效能。
## 📝 提示工程設定
為了獲得最佳效果,請在您的 AI 助手中添加以下自訂提示(例如在 Cursor 的規則或提示中):
### 基本提示
> 每當你想要詢問問題時,請務必調用 MCP `mcp-feedback-enhanced`。
> 每當你即將完成用戶請求時,請調用 MCP `mcp-feedback-enhanced` 而不是直接結束流程。
> 持續調用 MCP 直到用戶的回饋為空,然後才結束請求。
### 完整規則範例
```
# MCP Interactive Feedback 規則
1. 在任何流程、任務、對話進行時,無論是詢問、回覆、或完成階段性任務,皆必須呼叫 MCP mcp-feedback-enhanced。
2. 每當收到使用者回饋,若回饋內容非空,必須再次呼叫 MCP mcp-feedback-enhanced並根據回饋內容調整行為。
3. 僅當使用者明確表示「結束」或「不再需要互動」時,才可停止呼叫 MCP mcp-feedback-enhanced流程才算結束。
4. 除非收到結束指令,否則所有步驟都必須重複呼叫 MCP mcp-feedback-enhanced。
```
這將確保您的 AI 助手在標記任務完成前使用此 MCP 伺服器請求用戶回饋。
## 🔧 環境檢測與配置
系統會自動檢測運行環境並選擇適當的介面:
### Qt GUI本地環境
- 使用 Qt 的 `QSettings` 按專案基礎儲存配置
- 包含命令設定、自動執行選項、視窗幾何狀態等
- 設定通常儲存在平台特定位置Windows 登錄檔、macOS plist 檔案、Linux 配置目錄)
### Web UISSH Remote 環境)
- 基於 FastAPI 和 WebSocket 的現代化界面
- 支援即時命令執行和輸出顯示
- 自動瀏覽器啟動和會話管理
- 深色主題和響應式設計
### 調試模式控制
- **生產模式**:默認關閉所有調試輸出,確保與 MCP 客戶端完美兼容
- **調試模式**:設置 `MCP_DEBUG=true` 啟用詳細調試信息
- **輸出隔離**:所有調試信息輸出到 stderr不干擾 MCP 通信
## 🚀 安裝說明
### 方法 1uvx 安裝(推薦)
**這是最簡單的方法,無需手動管理依賴項或虛擬環境:**
1. **安裝 uv**(如果尚未安裝)
```bash
# Windows
pip install uv
# Linux/Mac
curl -LsSf https://astral.sh/uv/install.sh | sh
```
2. **測試安裝**
```bash
# 查看版本信息(推薦使用 @latest 確保最新版本)
uvx mcp-feedback-enhanced@latest version
# 執行測試
uvx mcp-feedback-enhanced@latest test
# 持久化測試模式(可在瀏覽器中實際測試)
uvx mcp-feedback-enhanced@latest test --persistent
```
### 方法 2從源碼安裝開發者
適合需要修改代碼或貢獻開發的用戶:
1. **取得程式碼**
```bash
git clone https://github.com/Minidoracat/mcp-feedback-enhanced.git
cd mcp-feedback-enhanced
```
2. **安裝依賴項**
```bash
uv sync
```
3. **測試安裝**
```bash
# 基本功能測試
uv run python -m mcp_feedback_enhanced test
# 持久化測試模式(可在瀏覽器中實際測試)
uv run python -m mcp_feedback_enhanced test --persistent
```
4. **運行 MCP 伺服器**
```bash
uv run python -m mcp_feedback_enhanced
```
## ⚙️ AI 助手配置
### 推薦配置(使用 uvx
在 Cursor 的設定中配置自訂 MCP 伺服器,或手動編輯 `mcp.json`
```json
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uvx",
"args": [
"mcp-feedback-enhanced@latest"
],
"timeout": 600,
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
### 替代配置(從源碼運行)
如果您需要使用源碼版本或想要自訂環境變數:
```json
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-feedback-enhanced",
"run",
"python",
"-m",
"mcp_feedback_enhanced"
],
"timeout": 600,
"env": {
"FORCE_WEB": "true",
"MCP_DEBUG": "false"
},
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
**記得將路徑修改為您實際的專案目錄!**
### Cline / Windsurf 配置
類似的設定原則:在各工具的 MCP 設定中配置伺服器命令,使用 `mcp-feedback-enhanced` 作為伺服器識別符。
## 🧪 測試和開發
### 使用 uvx 測試
```bash
# 完整功能測試(推薦)
uvx mcp-feedback-enhanced@latest test
# Qt GUI 專門測試
uvx mcp-feedback-enhanced@latest test --gui
# Web UI 專門測試
uvx mcp-feedback-enhanced@latest test --web
# 持久化測試模式(測試完不關閉,可互動測試)
uvx mcp-feedback-enhanced@latest test --persistent
uvx mcp-feedback-enhanced@latest test --gui --persistent
uvx mcp-feedback-enhanced@latest test --web --persistent
# 查看版本
uvx mcp-feedback-enhanced@latest version
# 啟用調試模式測試
MCP_DEBUG=true uvx mcp-feedback-enhanced@latest test
```
### 從源碼測試
```bash
# 完整功能測試
uv run python -m mcp_feedback_enhanced test
# Qt GUI 專門測試
uv run python -m mcp_feedback_enhanced test --gui
# Web UI 專門測試
uv run python -m mcp_feedback_enhanced test --web
# 持久化測試模式
uv run python -m mcp_feedback_enhanced test --persistent
# 啟用調試模式
MCP_DEBUG=true uv run python -m mcp_feedback_enhanced test
```
### 開發模式
使用 FastMCP 開發模式運行伺服器並開啟測試界面:
```bash
# 從源碼
uv run fastmcp dev src/mcp_feedback_enhanced/server.py
```
### 測試選項說明
- **無參數 `test`**執行完整測試套件環境檢測、參數驗證、MCP 整合、Web UI
- **`--gui`**:專門測試 Qt GUI 功能和介面
- **`--web`**:專門測試 Web UI 功能和 WebSocket 通訊
- **`--persistent`**:持久化模式,測試完成後保持運行,方便互動測試
## 🌟 功能特色
### 🖥️ 雙介面支援
- **Qt GUI**:適用於本地開發環境,提供原生體驗
- **Web UI**:適用於 SSH remote 開發環境,現代化界面
### 🔍 智慧環境檢測
- 自動檢測 SSH 連線環境變數
- 檢測 DISPLAY 設定Linux
- 檢測 VSCode Remote 開發環境
- 自動選擇最適合的介面
### 💻 命令執行功能
- 即時命令執行和輸出顯示
- 支援命令中斷和程序樹終止
- 自動工作目錄設定
- 命令歷史記錄
### 🎨 現代化介面
- 深色主題設計
- 響應式佈局(支援手機瀏覽器)
- WebSocket 即時通訊
- 載入動畫和視覺回饋
### 🖼️ 圖片處理功能
- 支援多種圖片格式PNG、JPG、JPEG、GIF、BMP、WebP
- 智能文件大小檢測和壓縮
- 拖拽上傳和剪貼板支援
- 自動轉換為 MCP Image 對象
- Base64 編碼和預覽
## 🛠️ 環境變數配置
### 核心環境變數
| 環境變數 | 用途 | 可用值 | 默認值 |
|---------|------|--------|--------|
| `FORCE_WEB` | 強制使用 Web UI | `true`, `false`, `1`, `0`, `yes`, `no`, `on`, `off` | `false` |
| `MCP_DEBUG` | 啟用調試模式 | `true`, `false`, `1`, `0`, `yes`, `no`, `on`, `off` | `false` |
| `INCLUDE_BASE64_DETAIL` | 圖片回饋包含完整 Base64 | `true`, `false`, `1`, `0`, `yes`, `no`, `on`, `off` | `false` |
### 使用範例
**在 MCP 配置中設定**
```json
"env": {
"FORCE_WEB": "true", // 強制使用 Web UI
"MCP_DEBUG": "false", // 關閉調試輸出(推薦生產環境)
"INCLUDE_BASE64_DETAIL": "true" // 包含完整圖片 Base64 數據
}
```
**在命令行中設定**
```bash
# 啟用調試模式測試
MCP_DEBUG=true uvx mcp-feedback-enhanced@latest test
```
## 📖 使用範例
### 1. **推薦 MCP 配置uvx**
使用 uvx 的簡潔配置:
```json
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uvx",
"args": [
"mcp-feedback-enhanced@latest"
],
"timeout": 600,
"env": {
"MCP_DEBUG": "false"
},
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
### 2. **自訂環境變數配置**
如需要自訂環境變數(例如強制使用 Web UI
```json
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-feedback-enhanced",
"run",
"python",
"-m",
"mcp_feedback_enhanced"
],
"timeout": 600,
"env": {
"FORCE_WEB": "true",
"MCP_DEBUG": "false",
"INCLUDE_BASE64_DETAIL": "true"
},
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
### 3. **工具調用範例**
AI 助手會如此調用 `mcp-feedback-enhanced` 工具:
```xml
<use_mcp_tool>
<server_name>mcp-feedback-enhanced</server_name>
<tool_name>interactive_feedback</tool_name>
<arguments>
{
"project_directory": "/path/to/your/project",
"summary": "我已經實現了您請求的更改並重構了主模組。請查看結果並提供回饋。"
}
</arguments>
</use_mcp_tool>
```
## 🔄 工作流程
1. **AI 助手調用** - AI 完成任務後調用 `mcp-feedback-enhanced`
2. **環境檢測** - 系統自動檢測運行環境
3. **介面啟動** - 根據環境啟動 Qt GUI 或 Web UI
4. **用戶互動** - 用戶可以:
- 執行命令和查看輸出
- 提供文字回饋(支援 Ctrl+Enter 快速提交,相容主鍵盤和數字鍵盤)
- 上傳圖片(拖拽、剪貼板粘貼 Ctrl+V
- 使用多語言介面切換
5. **回饋傳遞** - 用戶回饋(包括圖片)傳回給 AI 助手
6. **流程繼續** - AI 根據回饋繼續或結束任務
## 🆕 版本更新
### v2.0.14 - 增強快捷鍵支援(最新版)
- ⌨️ **數字鍵盤支援**Ctrl+Enter 快捷鍵現在同時支援主鍵盤和數字鍵盤的 Enter 鍵
- 🖼️ **智能圖片貼上**Ctrl+V 可直接在回饋對話框中貼上剪貼板圖片,無需額外上傳步驟
- 🎮 **雙重快捷鍵機制**GUI 使用 QShortcut 雙重設定,確保完整相容性
- 🌐 **Web UI 快捷鍵增強**:使用 key/code 雙重檢測機制,支援所有 Enter 鍵變體
- 💡 **使用者體驗改善**:更新三語言提示文字,明確標示數字鍵盤支援和圖片貼上功能
- 🔧 **API 簡化**:移除 `force_web_ui` 參數,簡化 API 設計,只保留環境變數控制
- 📝 **文件更新**:更新所有相關說明文件,移除冗餘範例
### v2.0.9 - 多語言架構重構
- 🌏 **完整多語言架構重構**:從嵌入式翻譯遷移到結構化 JSON 基礎系統
- 📁 **語言檔案組織化**:將語言檔案分離到 `src/mcp_feedback_enhanced/locales/` 目錄結構
- 🔧 **增強國際化功能**:動態載入與嵌套鍵值結構,支援瀏覽器語言偵測
- 📚 **完整文件說明**:為翻譯貢獻者新增詳細 README包含範例和指南
- 🔄 **向後兼容性**:在啟用現代功能的同時保持與現有程式碼的完全相容性
- 🖼️ **介面截圖更新**:新增完整截圖展示英文和繁體中文介面
- 📝 **文件強化**:更新 README 檔案,加入多語言截圖和功能說明
- 🛡️ **增強錯誤處理**:改善穩定性和錯誤恢復機制
- 🚀 **效能優化**:更快的啟動時間和改善的資源管理
- 🔧 **錯誤修復**:各種小型修復和改善
- 📦 **套件優化**:更好的相依性管理和建置流程
- 🎨 **視覺改善**:增強按鈕可見性和顏色一致性
- 🖱️ **互動修復**:改善拖拽指示器和空狀態提示
- 📱 **響應式設計**:更好的不同螢幕尺寸適應
- 🌐 **語言切換**:修復 Qt GUI 語言切換,加入適當的勾選標記
### v2.0.3 - 編碼與通訊修復
- 🛡️ **完全修復中文字符編碼問題**:支援完美的中文顯示
- 🔧 **解決 JSON 解析錯誤**:修復 MCP 客戶端的 "Unexpected token" 錯誤
- 🎛️ **可控調試模式**:透過 `MCP_DEBUG` 環境變數控制調試輸出
- 🖼️ **強化圖片支援**:改善圖片處理和 Base64 編碼
- 🚀 **輸出隔離**:嚴格分離調試輸出與 MCP 通信
- 📦 **套件優化**:改善 uvx 安裝體驗和依賴管理
### v2.0.0 - Web UI 與遠端支援
- ✅ **Web UI 介面**:新增 Web UI 支援 SSH remote 開發環境
- ✅ **自動環境檢測**:根據環境智能選擇介面
- ✅ **WebSocket 即時通訊**:即時命令執行和回饋
- ✅ **現代化深色主題**:美觀的深色主題與響應式設計
- ✅ **持久化測試模式**:增強的測試功能
### v1.0.0 - 基礎版本(原作者)
- ✅ **Qt GUI 介面**:原生桌面介面
- ✅ **命令執行**:即時命令執行和輸出
- ✅ **MCP 協議支援**:完整的模型上下文協議實作
- ✅ **跨平台支援**Windows、macOS 和 Linux 相容性
## 🐛 故障排除
### 常見問題
**Q: 出現 "Unexpected token 'D'" 錯誤**
A: 這通常是調試輸出干擾造成的。確保在生產環境中設置 `MCP_DEBUG=false` 或不設置該環境變數。
**Q: 中文字符顯示為亂碼**
A: 已在 v2.0.3 中完全修復。如果仍有問題,請更新到最新版本:`uvx mcp-feedback-enhanced@latest`
**Q: 圖片上傳失敗**
A: 檢查圖片大小是否超過 1MB 限制並確保格式為支援的類型PNG、JPG、JPEG、GIF、BMP、WebP
**Q: Web UI 無法啟動**
A: 確保防火牆允許本地端口訪問,或嘗試設置 `FORCE_WEB=true` 環境變數。
### 調試模式
如需詳細調試信息,請啟用調試模式:
```bash
# 設置調試環境變數
MCP_DEBUG=true uvx mcp-feedback-enhanced@latest test
```
## 🙏 致謝與聯繫
### 原作者
**Fábio Ferreira** - [X @fabiomlferreira](https://x.com/fabiomlferreira)
**原始專案:** [noopstudios/interactive-feedback-mcp](https://github.com/noopstudios/interactive-feedback-mcp)
如果您覺得 Interactive Feedback MCP 有用,最好的支持方式是:
- 🌟 **為原作者的專案按星星**[按此前往並按星星](https://github.com/noopstudios/interactive-feedback-mcp) ⭐
- 📱 **關注原作者的 X 帳號**[@fabiomlferreira](https://x.com/fabiomlferreira)
### UI 設計靈感
**sanshao85** - [mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector)
感謝提供現代化界面設計靈感,讓本專案的 UI 更加美觀和易用。
### 分支維護者
如有關於 Web UI 功能、圖片支援或其他問題,歡迎在 [GitHub Issues](https://github.com/Minidoracat/mcp-feedback-enhanced/issues) 中提出。
### 社群支援
加入我們的 Discord 社群獲得即時協助和討論:
**Discord 社群:** [https://discord.gg/Gur2V67](https://discord.gg/Gur2V67)
有任何問題都可以到社群中尋求幫助!
### 相關資源
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP 官方文件
## 📄 授權條款
本專案採用 MIT 授權條款。詳見 [LICENSE](LICENSE) 檔案。
---
**🌟 歡迎 Star 此專案並分享給更多開發者!**