Interactive Feedback MCP - 交互式反馈MCP服务器
🌐 Language / 語言切換:简体中文 |English
一个强大的 MCP 服务器,在AI辅助开发工具如 Cursor 中实现无缝的人机协作工作流程。该服务器允许您运行命令、查看输出结果,并通过直观的图形界面直接向AI提供丰富的文本反馈。
✨ 核心特性
🚀 先进的用户界面
- 现代化Qt图形界面 - 直观设计和响应式布局
- 多语言支持 - 中英文界面即时切换
- 图片拖拽支持 - 自动压缩和Base64编码
- 智能按钮布局 - 自适应屏幕尺寸和用户偏好
- 工具菜单集成 - 有序组织的系统维护功能
🎯 智能快捷响应系统
- 预配置响应按钮 - 覆盖常见开发工作流程
- RIPER-5协议集成 - (研究 → 创新 → 计划 → 执行 → 审查)
- 可自定义快捷操作 - 支持拖拽重新排序
- 项目特定配置 - 记住您的偏好设置
- 智能MCP调用 - 智能判断何时需要请求反馈
🔧 强大的命令执行
- 跨平台命令执行 - 实时输出流传输
- 自动执行模式 - 适用于重复性工作流程
- 进程管理 - 启动/停止控制和状态监控
- 命令历史 - 每个项目的命令持久化
- 控制台输出 - 语法高亮和滚动支持
🖼️ 高级图片处理
- 剪贴板图片支持 - Ctrl+V粘贴功能
- 多种图片格式 - PNG、JPG、JPEG、GIF、BMP、WebP
- 智能压缩 - 可配置的目标大小(30KB-100KB)
- Base64传输 - 直接AI图像识别
- 临时文件管理 - 自动清理功能
⚙️ 专业配置管理
- 项目特定设置 - 使用Qt QSettings安全存储
- 按钮自定义 - 尺寸、可见性和内容控制
- 性能优化 - 布局缓存和批量更新
- 备份和恢复 - 配置管理功能
- 主题和布局 - 持久化存储偏好设置
💡 为什么使用这个工具?
通过引导助手与用户确认而不是分支到投机性的高成本工具调用,该模块可以大幅减少像Cursor这样的平台上的高级请求数量(例如OpenAI工具调用)。在某些情况下,它帮助将原本多达25个工具调用合并为单个具有反馈感知的请求——节省资源并提高性能。
性能优势
- 降低API成本 - 通过最小化不必要的工具调用
- 提高准确性 - 在关键决策点进行人工验证
- 增强生产力 - 通过简化的反馈工作流程
- 更好的协作 - AI和人类开发者之间的配合
🎮 使用方法
基本工作流程
- 启动界面 - 当AI助手调用时启动
- 查看摘要 - 审查AI已完成的工作
- 使用快捷响应按钮 - 处理常见反馈场景:
- ✅ 看起来不错 - 批准当前工作
- 🔧 需要小调整 - 请求轻微修改
- 📋 完成所有清单 - 执行剩余任务
- 🎯 智能执行清单 - 智能处理剩余项目
高级功能
🔍 RIPER-5 协议工作流程
系统包含用于系统性问题解决的专用按钮:
- 🔍 深度分析问题 - 深度分析模式和系统性分解
- 💡 创新解决方案 - 头脑风暴多种方法并评估选项
- 📋 制定实施计划 - 生成详细的实施计划和审查检查点
- ⚡ 执行计划步骤 - 按计划执行,带有交互反馈
- 🎯 验证最终结果 - 根据需求进行全面验证
🖼️ 图片集成
- 拖拽图片 - 直接拖入界面或使用Ctrl+V粘贴截图
- 配置传输选项 - 启用Base64进行AI识别
- 调整压缩设置 - 选择目标大小以获得最佳性能
- 发送前预览 - 使用缩略图预览功能
⚙️ 自定义选项
- 编辑快捷按钮 - 点击⚙️按钮自定义响应
- 工具菜单 - 访问系统功能,如临时文件清理
- 语言切换 - 在中英文界面之间切换
- 布局偏好 - 调整按钮大小和窗口布局
命令执行功能
- 切换命令区域 - 显示/隐藏命令执行面板
- 自动执行模式 - 启用启动时自动命令运行
- 实时输出 - 查看命令执行结果
- 进程控制 - 启动、停止和监控运行中的进程
📋 提示词工程
为了获得最佳效果,请将以下内容添加到您的AI助手自定义提示中任意一种:
示例1:
每当您想要提问时,始终调用MCP `interactive_feedback`。
每当您即将完成用户请求时,调用MCP `interactive_feedback`而不是简单地结束过程。
继续调用MCP直到用户反馈为空,然后结束请求。
使用RIPER-5协议按钮时,遵循系统化方法:
1. 🔍 研究:在提出解决方案之前彻底分析问题
2. 💡 创新:探索多种创造性方法
3. 📋 计划:创建详细的、可审查的实施计划
4. ⚡ 执行:按步骤执行计划,设置检查点
5. 🎯 审查:根据原始需求验证结果
示例2:
配套当前mcp的cursor提示词:RIPER-5-cursor-rule
这确保您的AI助手有效使用MCP服务器并遵循结构化的问题解决方法。
🔧 配置
此MCP服务器使用Qt的QSettings
在每个项目基础上存储配置,包括:
存储的设置
- 命令偏好 - 每个项目的默认命令
- 执行设置 - 自动执行偏好和命令历史
- UI偏好 - 窗口几何、按钮可见性、语言选择
- 快捷响应自定义 - 自定义按钮、大小和排列
- 图片处理设置 - 压缩偏好和传输选项
- 性能设置 - 布局缓存和更新偏好
存储位置
设置存储在特定于平台的位置:
- Windows: 注册表
HKEY_CURRENT_USER\Software\InteractiveFeedbackMCP\InteractiveFeedbackMCP
- macOS:
~/Library/Preferences/com.InteractiveFeedbackMCP.InteractiveFeedbackMCP.plist
- Linux:
~/.config/InteractiveFeedbackMCP/InteractiveFeedbackMCP.conf
配置组织结构
- 全局设置: 窗口几何、语言偏好等通用UI设置存储在
MainWindow_General
组中 - 项目特定设置: 每个项目根据其目录路径哈希获得唯一的配置组,格式为
Project_{项目名}_{目录哈希}
- 基础传输设置: Base64传输配置等全局功能设置直接存储在根级别
配置隔离机制
系统通过以下方式确保不同项目的配置互不干扰:
- 目录哈希: 使用项目目录的MD5哈希值生成唯一标识符
- 组分离: 不同项目的设置存储在独立的配置组中
- 回退机制: 项目特定设置优先,未设置时使用全局默认值
存储的具体配置项
每个项目配置组包含以下设置:
run_command
: 项目的默认执行命令execute_automatically
: 是否自动执行命令suffix_mode
: 反馈后缀模式(force/smart/none)button_size
: 按钮大小设置(small/medium/large/custom)custom_button_width/height
: 自定义按钮尺寸visible_buttons
: 可见快捷按钮列表language
: 界面语言设置use_base64_transmission
: 是否启用Base64图片传输base64_target_size_kb
: Base64传输的目标文件大小commandSectionVisible
: 命令区域是否可见quick_responses
: 自定义快捷响应按钮配置
配置文件示例
在Linux系统上,配置文件内容类似:
[MainWindow_General]
geometry=@ByteArray(...)
windowState=@ByteArray(...)
[Project_MyProject_a1b2c3d4]
run_command=python main.py
execute_automatically=false
suffix_mode=force
button_size=medium
language=zh_CN
use_base64_transmission=true
base64_target_size_kb=30
🚀 安装
前置要求
- Python 3.11 或更新版本
- uv (Python包管理器)
- Windows:
pip install uv
- Linux/Mac:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows:
安装步骤
克隆仓库:
git clone https://github.com/liaosiqian/interactive-feedback-mcp.git cd interactive-feedback-mcp
安装依赖:
uv venv uv sync --index-url https://pypi.tuna.tsinghua.edu.cn/simple
与AI工具集成
Cursor 配置
添加到您的
mcp.json
配置文件:
{
"mcpServers": {
"interactive-feedback-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/interactive-feedback-mcp",
"run",
"server.py"
],
"timeout": 600,
"autoApprove": [
"interactive_feedback"
]
}
}
}
重要提醒: 将 /path/to/interactive-feedback-mcp
替换为您克隆仓库的实际路径。
Cline / Windsurf 配置
在相应工具的MCP设置中使用类似的配置原理,指定 interactive-feedback-mcp
作为服务器标识符。
🛠️ 开发
开发模式
使用Web界面运行服务器进行测试:
uv run fastmcp dev server.py
这会打开一个用于测试MCP工具交互的Web界面。
项目结构
interactive-feedback-mcp/
├── feedback_ui.py # 主UI控制器 (773行)
├── ui_layout.py # 布局管理 (372行)
├── ui_performance.py # 性能优化 (120行)
├── button_core.py # 按钮核心逻辑 (195行)
├── ui_events.py # 事件处理 (178行)
├── ui_settings.py # 配置管理 (142行)
├── feedback_logic.py # 业务逻辑 (215行)
├── quick_response_manager.py # 快捷响应系统 (180行)
├── ui_dialogs.py # 对话框组件 (580行)
├── cleanup_temp_images.py # 图片清理工具 (222行)
├── clipboard_image_widget.py # 图片处理 (540行)
├── i18n.py # 国际化 (352行)
├── server.py # MCP服务器入口点 (74行)
└── config.py # 配置工具 (44行)
架构亮点
- 模块化设计 - 清晰的关注点分离
- 基于Qt的UI - 现代设计模式
- 性能优化 - 包括布局缓存和批量更新
- 全面的国际化 - 支持多语言
- 健壮的错误处理 - 优雅降级
🔨 可用工具
interactive_feedback
用于请求用户反馈的主要工具,包含丰富的上下文。
使用示例:
<use_mcp_tool>
<server_name>interactive-feedback-mcp</server_name>
<tool_name>interactive_feedback</tool_name>
<arguments>
{
"project_directory": "/path/to/your/project",
"summary": "我已经实现了请求的功能,需要您对实现方法的反馈。"
}
</arguments>
</use_mcp_tool>
参数:
project_directory
(字符串): 当前项目目录的路径summary
(字符串): 已完成工作或问题的简要描述
返回值:
logs
(字符串): 任何执行命令的控制台输出interactive_feedback
(字符串): 用户的文本反馈和指示
🎯 最佳实践
对于AI助手
- 始终提供上下文 - 在摘要参数中提供详细信息
- 使用特定的项目目录 - 确保配置隔离正确
- 等待用户反馈 - 在进行重大更改之前
- 利用快捷响应按钮 - 通过提及其可用性
- 遵循RIPER-5协议 - 进行系统性问题解决
对于用户
- 自定义快捷按钮 - 针对您最常见的响应
- 使用图片功能 - 提供视觉反馈和示例
- 配置项目特定设置 - 适应不同的工作流程
- 保持临时文件清洁 - 使用工具菜单清理选项
- 根据需要切换语言 - 适用于国际协作
性能技巧
- 启用自动执行 - 适用于重复性命令工作流程
- 谨慎使用Base64传输 - 对于大图片
- 自定义按钮布局 - 匹配您的屏幕尺寸
- 利用工具菜单 - 保持界面有序
🌟 致谢与联系
本项目最初由 Fábio Ferreira (@fabiomlferreira) 开发。
RIPER-5-cursor-rule.txt 原始版本来源于 煎饼果子(86)
大佬整理
📄 许可证
这个项目是开源的。请参考许可证文件了解详情。
🚀 贡献
欢迎贡献!请随时提交问题、功能请求或拉取请求来改进这个工具。
📚 功能详细说明
🎨 界面自定义
- 按钮大小调整 - 小号(100x30)、中号(120x40)、大号(150x45)或自定义尺寸
- 语言切换 - 运行时即时在中英文之间切换
- 布局适配 - 自动适应不同屏幕尺寸和分辨率
- 主题保存 - 记住窗口大小、位置和用户偏好
🔄 工作流程集成
- RIPER-5协议 - 结构化的五阶段问题解决方法
- 检查清单管理 - 智能执行和进度跟踪
- 项目配置隔离 - 每个项目独立的设置和历史
- 自动化脚本 - 支持重复性任务的自动执行
🖥️ 命令行集成
- 实时进程监控 - 查看命令执行状态和输出
- 跨平台兼容 - Windows、macOS、Linux全平台支持
- 错误处理 - 优雅处理命令失败和异常情况
- 输出格式化 - 语法高亮和可读性优化
📊 性能监控
- UI响应优化 - 批量更新减少界面卡顿
- 内存使用监控 - 智能缓存管理
- 网络传输优化 - 图片压缩和传输效率
- 调试统计 - 性能指标收集和分析
这个工具设计用于提升AI辅助开发的效率和准确性,通过人机协作实现更好的开发体验。