Skip to main content

A modern MCP server for interactive user feedback collection with GUI

Project description

🎯 交互式反馈收集器 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. 安装依赖

pip install mcp pillow

2. 启动服务器

# Windows
start_server.bat

# 或直接运行
python server.py

3. Claude Desktop 配置

claude_desktop_config.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与用户的交互更加高效和直观!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_feedback_collector-2.0.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_feedback_collector-2.0.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file mcp_feedback_collector-2.0.0.tar.gz.

File metadata

  • Download URL: mcp_feedback_collector-2.0.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for mcp_feedback_collector-2.0.0.tar.gz
Algorithm Hash digest
SHA256 b363333750471ae7c0f8dee3a463f0ba5b9d17f11bb445de7cf8ecda8ee54559
MD5 6ab3b264dae96e2268757f64f3d02c46
BLAKE2b-256 bdbd5e853b914d3a9c6284bdc28511249af3ef93f1010dd2a800ded8d27d9ab3

See more details on using hashes here.

File details

Details for the file mcp_feedback_collector-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_feedback_collector-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e705621b6d37137fa90c073e26950f4b45e140bc0e35a4dde23289209098239
MD5 712adffea54c51f1ffe9688897667354
BLAKE2b-256 b8f903ea5f1caa7d838ed74c0cc86ab28ce2376ca804d201bac6546089a12aa5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page