mcp-feedback-collector 2.0.0
A modern MCP server for interactive user feedback collection with GUI
License: MIT
Requires Python: >=3.8
Keywords: ai-assistant, claude, feedback, gui, image-picker, interactive, mcp, model-context-protocol

# 🎯 交互式反馈收集器 MCP 服务器

一个现代化的 Model Context Protocol (MCP) 服务器，为AI助手提供交互式用户反馈收集功能。AI可以汇报工作完成情况，用户可以通过美观的图形界面提供文字反馈和多张图片反馈。

## ✨ 主要特性

### 🎨 现代化UI设计
- **美观界面**：采用现代化设计风格，微软雅黑字体
- **直观布局**：清晰的区域划分，彩色按钮和图标
- **响应式设计**：700x800像素窗口，支持调整大小
- **用户友好**：丰富的提示信息和状态反馈

### 📷 强大的图片功能
- **多图片支持**：同时选择和提交多张图片
- **多种来源**：支持文件选择和剪贴板粘贴
- **实时预览**：横向滚动的缩略图预览（100x80像素）
- **灵活管理**：每张图片独立删除，一键清除所有

### 💬 灵活的反馈方式
- **纯文字反馈**：多行文本输入，支持长文本
- **纯图片反馈**：只提交图片，无需文字
- **混合反馈**：文字+多张图片的组合反馈
- **时间戳记录**：自动记录反馈提交时间

## 🛠️ 工具列表

### 1. `collect_feedback(work_summary: str)` - 主要功能
收集用户的交互式反馈，AI汇报工作内容，用户提供反馈。

**参数：**
- `work_summary`: AI完成的工作内容汇报

**返回：**
- 包含文字和图片的反馈内容列表
- 支持TextContent和Image类型的混合返回

**使用场景：**
- AI完成任务后汇报工作内容
- 收集用户对AI工作的评价和建议
- 获取用户的问题反馈和改进意见
- 收集相关的截图或图片资料

### 2. `pick_image()` - 图片选择
弹出简化的图片选择对话框，快速选择单张图片。

**返回：**
- MCPImage对象

**使用场景：**
- 需要用户提供单张图片时
- 快速的图片选择需求

### 3. `get_image_info(image_path: str)` - 图片信息
获取指定路径图片的详细信息。

**参数：**
- `image_path`: 图片文件路径

**返回：**
- 图片的格式、尺寸、大小等信息

## 🖼️ 界面展示

### 主界面布局
```
🎯 工作完成汇报与反馈收集
┌─────────────────────────────────────────┐
│ 📋 AI工作完成汇报                        │
│ ┌─────────────────────────────────────┐ │
│ │ AI汇报的工作内容显示区域              │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│ 💬 您的文字反馈（可选）                  │
│ ┌─────────────────────────────────────┐ │
│ │                                     │ │
│ │ 多行文本输入框                       │ │
│ │ 支持滚动条                          │ │
│ │                                     │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│ 🖼️ 图片反馈（可选，支持多张）            │
│ [📁选择图片文件] [📋从剪贴板粘贴] [❌清除所有图片] │
│ ┌─────────────────────────────────────┐ │
│ │ [图1] [图2] [图3] ... (横向滚动)     │ │
│ │ 100x80缩略图预览，带删除按钮         │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘

[✅ 提交反馈]  [❌ 取消]
```

### 按钮配色方案
- **📁 选择图片文件**：蓝色 (#3498db)
- **📋 从剪贴板粘贴**：绿色 (#2ecc71)  
- **❌ 清除所有图片**：红色 (#e74c3c)
- **✅ 提交反馈**：深绿色 (#27ae60)
- **❌ 取消**：灰色 (#95a5a6)

## 📦 安装和配置

### 1. 安装依赖
```bash
pip install mcp pillow
```

### 2. 启动服务器
```bash
# Windows
start_server.bat

# 或直接运行
python server.py
```

### 3. Claude Desktop 配置
在 `claude_desktop_config.json` 中添加：

```json
{
  "mcpServers": {
    "image-picker-mcp": {
      "command": "python",
      "args": ["D:/zhuomian/duihuamcp/image-picker-mcp/server.py"],
      "cwd": "D:/zhuomian/duihuamcp/image-picker-mcp",
      "env": {
        "MCP_DIALOG_TIMEOUT": "600"
      }
    }
  }
}
```

#### 🕐 超时配置说明
- **MCP_DIALOG_TIMEOUT**: 对话框超时时间（秒）
  - 默认值：300秒（5分钟）
  - 建议值：600秒（10分钟）用于复杂反馈
  - 最小值：60秒（1分钟）
  - 设置为更长时间可避免用户操作时超时

#### 📝 配置参数详解
| 参数 | 默认值 | 说明 | 建议值 |
|------|--------|------|--------|
| MCP_DIALOG_TIMEOUT | 300 | 对话框等待用户操作的超时时间（秒） | 600-1200 |

**超时时间选择建议：**
- **快速反馈**：300秒（5分钟）- 适合简单的文字反馈
- **详细反馈**：600秒（10分钟）- 适合需要思考和输入较多内容
- **复杂反馈**：1200秒（20分钟）- 适合需要查找多张图片和详细说明

### 4. 重启 Claude Desktop
配置完成后重启 Claude Desktop 即可使用。

## 🚀 使用方法

### 基本工作流程
1. **AI汇报工作**：AI调用 `collect_feedback()` 并传入工作汇报内容
2. **用户查看汇报**：界面显示AI完成的工作内容
3. **用户提供反馈**：
   - 在文字区域输入反馈意见
   - 选择相关图片（截图、文件等）
   - 可以只提供文字、只提供图片，或两者都提供
4. **提交反馈**：点击"提交反馈"按钮
5. **AI接收反馈**：AI收到文字和图片内容，继续对话

### 图片操作指南
- **文件选择**：支持多选，可选择 PNG、JPG、GIF、BMP、WebP 等格式
- **剪贴板粘贴**：先截图到剪贴板，然后点击粘贴按钮
- **预览管理**：每张图片显示缩略图、来源和尺寸信息
- **删除操作**：点击图片右下角的"×"按钮删除单张图片

### 最佳实践
1. **AI汇报要详细**：在 `work_summary` 中详细描述完成的工作
2. **用户反馈要具体**：提供明确的意见和建议
3. **图片要相关**：提交与反馈内容相关的截图或图片
4. **及时提交**：避免长时间停留导致超时

## 🔧 技术实现

### 核心技术栈
- **MCP协议**：FastMCP框架
- **GUI框架**：tkinter + scrolledtext
- **图片处理**：PIL/Pillow + ImageTk
- **多线程**：threading + queue
- **数据格式**：TextContent + MCPImage

### 关键特性
- **非阻塞UI**：使用线程避免阻塞AI对话
- **内存优化**：图片缩略图生成，减少内存占用
- **错误处理**：完善的异常处理和用户提示
- **跨平台**：支持Windows、macOS、Linux

### 数据流程
```
AI调用 → 显示界面 → 用户操作 → 收集数据 → 返回AI
   ↓         ↓         ↓         ↓         ↓
work_summary → GUI → 文字+图片 → 格式转换 → TextContent+MCPImage
```

## 📝 更新日志

### v2.0.0 (2025-05-28)
- 🎨 全新的现代化UI设计
- 📷 支持多张图片同时提交
- 🖼️ 横向滚动的图片预览区域
- 🎯 更大的窗口尺寸 (700x800)
- 💫 彩色按钮和图标
- 🔧 优化的用户体验

### v1.0.0 (2025-05-28)
- 🚀 初始版本发布
- 📝 基础的文字反馈功能
- 🖼️ 单张图片选择功能
- 🎨 简单的界面设计

## 🤝 使用建议

### 对于AI助手
- 每次完成重要任务后调用 `collect_feedback()` 汇报工作
- 在 `work_summary` 中详细描述完成的内容和结果
- 根据用户反馈调整后续工作方向

### 对于用户
- 提供具体、建设性的反馈意见
- 使用图片补充文字无法表达的内容
- 及时提交反馈，避免超时

## 📞 技术支持

如果遇到问题，请检查：
1. Python环境和依赖包是否正确安装
2. Claude Desktop配置文件路径是否正确
3. 服务器是否正常启动
4. 图片文件格式是否支持

---

**🎯 让AI与用户的交互更加高效和直观！**