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

# 🎯 MCP服务器反馈收集器

一个现代化的 Model Context Protocol (MCP) 服务器，为AI助手提供交互式用户反馈收集功能。支持GUI和Web两种界面模式，完美适配桌面和服务器环境。

![Version](https://img.shields.io/badge/version-2.1.0-blue)
![Python](https://img.shields.io/badge/python-3.8+-green)
![License](https://img.shields.io/badge/license-MIT-orange)

## ✨ 主要特性

- 🎨 **智能界面** - 自动检测环境，支持GUI和Web两种界面模式
- 🖥️ **跨平台兼容** - Windows GUI、Linux/Mac Web界面，完美适配服务器环境
- 📷 **多图片支持** - 同时选择多张图片，支持文件选择和剪贴板粘贴
- 💬 **灵活反馈** - 支持纯文字、纯图片或文字+图片组合反馈
- ⚡ **零配置安装** - 使用uvx一键安装，无需复杂配置
- 🔧 **智能超时** - 可配置的对话框超时时间，避免操作中断
- 🌐 **Web模式** - 在无GUI环境下自动启动Web服务器，浏览器访问

## 🚀 快速开始

### 1. 安装uvx
```bash
pip install uvx
```

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

```json
{
  "mcpServers": {
    "mcp-server-feedback": {
      "command": "uvx",
      "args": ["mcp-server-feedback"],
      "env": {
        "PYTHONIOENCODING": "utf-8",
        "MCP_DIALOG_TIMEOUT": "600"
      }
    }
  }
}
```

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

## 🛠️ 核心功能

### collect_feedback()
收集用户反馈的主要工具，AI可以汇报工作内容，用户提供文字和图片反馈。

```python
# AI调用示例
result = collect_feedback("我已经完成了代码优化工作...")
```

### pick_image()
快速图片选择工具，用于单张图片选择场景。

### get_image_info()
获取图片文件的详细信息（格式、尺寸、大小等）。

## 🖼️ 界面预览

```
🎯 工作完成汇报与反馈收集
┌─────────────────────────────────────────┐
│ 📋 AI工作完成汇报                        │
│ ┌─────────────────────────────────────┐ │
│ │ [AI汇报的工作内容显示在这里]         │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│ 💬 您的文字反馈（可选）                  │
│ ┌─────────────────────────────────────┐ │
│ │ [多行文本输入区域]                   │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│ 🖼️ 图片反馈（可选，支持多张）            │
│ [📁选择文件] [📋粘贴] [❌清除]           │
│ [图片缩略图预览区域]                     │
└─────────────────────────────────────────┘

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

## ⚙️ 配置说明

### 环境变量
- `MCP_DIALOG_TIMEOUT`: 对话框等待时间（秒）
  - 默认：300秒（5分钟）
  - 建议：600秒（10分钟）
  - 复杂操作：1200秒（20分钟）

- `MCP_DISPLAY_MODE`: 强制指定界面模式
  - `auto`（默认）：自动检测环境
  - `gui`：强制使用GUI模式
  - `web`：强制使用Web模式

- `MCP_WEB_PORT`: 指定Web服务器端口（Web模式）
  - 默认：自动分配8000-8100范围内可用端口

### 高级配置示例
```json
{
  "mcpServers": {
    "mcp-server-feedback": {
      "command": "uvx",
      "args": ["mcp-server-feedback"],
      "env": {
        "PYTHONIOENCODING": "utf-8",
        "MCP_DIALOG_TIMEOUT": "600",
        "MCP_DISPLAY_MODE": "web",
        "MCP_WEB_PORT": "8080"
      }
    }
  }
}
```

### 支持的图片格式
PNG、JPG、JPEG、GIF、BMP、WebP

## 💡 使用场景

- ✅ AI完成任务后收集用户评价
- ✅ 收集包含截图的详细反馈
- ✅ 获取用户对代码/设计的意见
- ✅ 收集bug报告和改进建议

## 🔧 技术栈

- **MCP框架**: FastMCP
- **GUI模式**: tkinter + PIL
- **Web模式**: Flask + HTML5/CSS3/JavaScript
- **多线程**: threading + queue
- **图片处理**: Pillow
- **进程管理**: psutil
- **环境检测**: 自动识别GUI/Web环境

## 🌐 环境适配

### GUI模式 (Windows/有显示环境的Linux)
- 使用tkinter创建原生桌面应用
- 支持文件对话框和剪贴板操作
- 美观的现代化界面设计

### Web模式 (Linux服务器/SSH环境)
- 自动启动本地Web服务器
- 现代化的响应式Web界面
- 支持拖拽上传和剪贴板粘贴
- 自动端口管理和进程清理

## 📝 更新日志

### v2.1.0 (2025-05-30)
- 🌐 **新增Web模式** - 支持Linux服务器环境
- 🔍 **智能环境检测** - 自动选择GUI或Web界面
- 🔧 **端口管理** - 自动寻找可用端口，清理旧进程
- 🖥️ **跨平台兼容** - 完美适配Windows和Linux环境
- 📱 **响应式设计** - Web界面支持各种屏幕尺寸

### v2.0.0 (2025-05-28)
- 🎨 全新现代化UI设计
- 📷 多图片同时提交支持
- 🖼️ 横向滚动图片预览
- 💫 彩色按钮和图标
- 🔧 优化用户体验

## 📄 许可证

MIT License - 详见 [LICENSE](LICENSE) 文件

## 🤝 贡献

欢迎提交Issue和Pull Request！

---

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