Skip to content

pawaovo/interactive-feedback-mcp

 
 

Repository files navigation

Interactive Feedback MCP Interactive Feedback MCP

不好意思,之前很多功能下载源代码正常,但是uv安装会有问题

一个简单的 MCP Server,用于在AI辅助开发工具(如 CursorClineWindsurf)和[Augment]插件中实现人机协作工作流。该服务器允许您轻松地直接向AI代理提供反馈,让AI与您之间更好地协作。

详细信息请参阅:

注意: 此服务器设计为与MCP客户端(例如Cursor、VS Code)在本地一同运行,因为它需要直接访问用户的操作系统以显示UI和执行键盘/鼠标操作。

🖼️ 示例

Interactive Feedback Example Interactive Feedback Example Interactive Feedback Example (请注意,示例图片可能未反映最新的UI调整,但核心交互流程保持不变)

💡 为何使用此工具?

1.在像Cursor这样的环境中,您发送给LLM的每个提示都被视为一个独立的请求——每个请求都会计入您的每月限额(例如,500个高级请求)。当您迭代模糊指令或纠正被误解的输出时,这会变得效率低下,因为每次后续澄清都会触发一个全新的请求。

此MCP服务器引入了一种变通方法:它允许模型在最终确定响应之前暂停并请求澄清。模型不会直接完成请求,而是触发一个工具调用 (interactive_feedback),打开一个交互式反馈窗口。然后,您可以提供更多细节或要求更改——模型会继续会话,所有这些都在单个请求内完成。

从本质上讲,这只是巧妙地利用工具调用来推迟请求的完成。由于工具调用不计为单独的高级交互,因此您可以在不消耗额外请求的情况下循环执行多个反馈周期。

简而言明,这有助于您的AI助手在猜测之前请求澄清,而不会浪费另一个请求。这意味着更少的错误答案、更好的性能和更少的API使用浪费。

2.一定程度上可替代原有的IDA对话栏,直接使用MCP服务与AI对话

  • 💰 减少高级API调用: 避免浪费昂贵的API调用来基于猜测生成代码。
  • ✅ 更少错误: 行动前的澄清意味着更少的错误代码和时间浪费。
  • ⏱️ 更快周期: 快速确认胜过调试错误的猜测。
  • 🎮 更好协作: 将单向指令转变为对话,让您保持控制。

🌟 核心功能与使用技巧

处理图片

  • 粘贴: 在反馈窗口的文本输入框中按 Ctrl+V (或 Cmd+V) 粘贴图片。您可以同时粘贴多张图片和文本。
  • 拖拽: 直接从文件管理器拖拽图片文件到文本输入框中。
  • 选择: 点击"选择文件"按钮,通过文件对话框选择图片文件。
  • 图片预览: 添加的图片会在输入框下方显示可点击的缩略图预览。点击缩略图可以移除对应的图片。

文件引用

  • 拖拽文件: 将任意文件从文件管理器拖拽到文本输入框,会生成蓝色的文件引用(如 @文件名.txt)。
  • 选择文件: 点击"选择文件"按钮选择多个文件,支持图片和普通文件的混合选择。
  • 智能处理: 系统自动识别图片文件和普通文件,分别进行相应的处理和显示。

常用语

  • hover预览: 鼠标悬停在"常用语"按钮上可快速预览所有常用语,支持滚动查看。
  • 快速插入: 在预览窗口中点击常用语可直接插入到输入框,无需打开管理对话框。
  • 管理: 点击"常用语"按钮打开管理对话框,可以添加、编辑、删除和排序常用语。

文本优化和增强

  • 一键优化: 点击"优化"按钮将口语化输入转换为结构化指令,提高AI理解准确性。
  • 自定义增强: 点击"增强"按钮,可使用自定义提示词对文本进行特定处理。
  • API配置: 在设置页面配置OpenAI、Gemini、DeepSeek等AI提供商的API密钥。
  • 撤销功能: 优化后可使用Ctrl+Z撤销,恢复原始文本内容。

窗口截图

  • 矩形截图: 点击截图按钮后,UI窗口自动最小化,可进行矩形区域选择截图。
  • 自动集成: 截图完成后自动添加到输入内容中,与图片功能无缝集成。
  • 实时预览: 截图选择过程中提供实时的选择区域预览效果。

界面布局

  • 布局切换: 在设置页面可以选择垂直布局(上下分布)或水平布局(左右分布)。
  • 分割器拖拽: 拖拽分割器手柄可以调整各区域的大小,双击分割器可重置为默认比例。
  • 状态保存: 布局选择和分割器位置会自动保存,下次启动时恢复。

显示模式配置

  • 简单模式: 显示AI处理后的简洁问题,适合快速交互。
  • 完整模式: 显示AI的原始完整回复内容,适合详细查看。
  • 动态切换: 可在设置页面实时切换显示模式,立即生效。

🛠️ 工具

此服务器通过模型上下文协议 (MCP) 公开以下工具:

interactive_feedback

  • 功能: 向用户发起交互式会话,显示提示信息,提供可选选项,并收集用户的文本、图片和文件引用反馈。支持多种交互方式包括文本输入、图片粘贴/拖拽、文件拖拽/选择等。

  • 参数:

    • message (str, 可选): 简单模式下显示的简洁问题或提示
    • full_response (str, 可选): 完整模式下显示的AI原始完整回复内容
    • predefined_options (List[str], 可选): 一个字符串列表,每个字符串代表一个用户可以选择的预定义选项。如果提供,这些选项会显示为复选框。
  • 智能回退机制:

    • 简单模式:优先使用 message 参数,如果为空则自动回退到 full_response
    • 完整模式:优先使用 full_response 参数,如果为空则自动回退到 message
    • 实时模式检测:每次调用都读取最新的用户模式配置,支持动态切换
    • 错误处理:只有当两个参数都为空时才返回错误,避免不必要的调用失败
  • 用户交互方式:

    • 文本输入:在主输入框中输入反馈文本

    • 图片处理:通过Ctrl+V粘贴或拖拽图片文件

    • 文件引用:通过拖拽文件或点击"选择文件"按钮添加文件引用

    • 常用语:通过hover预览或管理对话框快速插入预设短语

    • 布局调整:通过拖拽分割器调整界面布局

    • 文本优化:通过优化和增强按钮处理输入文本

    • 窗口截图:通过截图按钮进行矩形选择截图

  • 返回给AI助手的数据格式: 该工具会返回一个包含结构化反馈内容的元组 (Tuple)。元组中的每个元素可以是字符串 (文本反馈或文件引用信息) 或 fastmcp.Image 对象 (图片反馈)。 具体来说,从UI收集到的数据会转换成以下 content 项列表,并由 MCP 服务器进一步处理成 FastMCP兼容的元组:

    // UI返回给MCP服务器的原始JSON结构示例
    {
      "content": [
        {"type": "text", "text": "用户的文本反馈..."},
        {"type": "image", "data": "base64_encoded_image_data", "mimeType": "image/jpeg"},
        {"type": "file_reference", "display_name": "@example.txt", "path": "/path/to/local/example.txt"}
        // ... 可能有更多项
      ]
    }
    • 文本内容 (type: "text"):包含用户输入的文本和/或选中的预定义选项组合文本。
    • 图片内容 (type: "image"):包含 Base64 编码后的图片数据和图片的 MIME 类型 (如 image/jpeg)。这些在 MCP 服务器中会被转换为 fastmcp.Image 对象。
    • 文件引用 (type: "file_reference"):包含用户拖拽或选择的文件的显示名 (如 @filename.txt) 和其在用户本地的完整路径。这些信息通常会作为文本字符串传递给AI助手。

    注意:

    • 即便没有任何用户输入(例如用户直接关闭反馈窗口),工具也会返回一个表示"无反馈"的特定消息,如 ("[User provided no feedback]",)

optimize_user_input

  • 功能: 使用配置的LLM API来优化或增强用户输入的文本,将口语化、可能存在歧义的输入转化为更结构化、更清晰、更便于AI模型理解的文本。
  • 参数:
    • original_text (str): 必须参数。用户的原始输入文本
    • mode (str): 必须参数。优化模式:
      • 'optimize': 一键优化,使用预设的通用优化指令
      • 'reinforce': 提示词强化,使用用户自定义的强化指令
    • reinforcement_prompt (str, 可选): 在 'reinforce' 模式下用户的自定义指令
  • 支持的AI提供商:
    • OpenAI: GPT-4o-mini 等模型
    • Google Gemini: Gemini-2.0-flash 等模型
    • DeepSeek: DeepSeek-chat 等模型
    • 火山引擎: DeepSeek-v3 等模型
  • 返回: 优化后的文本内容或错误信息

📦 安装

方式一:开发安装(推荐)

推荐使用开发模式安装,以获得最佳的稳定性和功能完整性。

开发模式安装提供:

  • 完整的功能支持和最佳稳定性
  • 实时的代码更新和bug修复
  • 完整的资源文件和配置支持
  • 更好的调试和问题排查能力
  • 避免PyPI安装可能遇到的资源文件缺失问题

为什么推荐开发模式?

  • PyPI安装可能存在资源文件缺失、配置问题等
  • 开发模式确保所有功能完整可用
  • 可以及时获得最新的功能改进和bug修复
  1. 先决条件:

    • Python 3.11 或更新版本
    • uv (推荐的Python包管理工具)
      • Windows: pip install uv
      • Linux/macOS: curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 获取代码:

    git clone https://github.com/pawaovo/interactive-feedback-mcp.git
    cd interactive-feedback-mcp
  3. 安装依赖:

    uv pip install -e .

    或使用现代 uv 语法:

    uv sync

当前版本: v2.5.10 - 文档重大更新,推荐开发模式安装;修复UI控件选中状态视觉效果

方式二:PyPI安装(备选)

使用uvx:

# 直接运行,无需安装
uvx interactive-feedback@latest

# 如果首次安装失败,可以预安装:
uv tool install interactive-feedback@latest

使用pip:

pip install interactive-feedback

注意: PyPI安装可能存在资源文件缺失或配置问题,推荐使用开发模式安装。

⚙️ 配置

方式一:开发模式配置(推荐)

将以下配置添加到您的 claude_desktop_config.json (Claude Desktop) 或 mcp_servers.json (Cursor, 通常在 .cursor-ai/mcp_servers.json 或用户配置目录中):

{
  "mcpServers": {
    "interactive-feedback": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/interactive-feedback-mcp",
        "run",
        "interactive-feedback"
      ],
      "timeout": 600,
      "autoApprove": [
        "interactive_feedback",
        "optimize_user_input"
      ]
    }
  }
}

请将 /path/to/interactive-feedback-mcp 替换为您实际的项目路径。

方式二:uvx配置(备选)

如果您选择使用uvx安装,可以使用以下配置:

{
  "mcpServers": {
    "interactive-feedback": {
      "command": "uvx",
      "args": [
        "interactive-feedback@latest"
      ],
      "timeout": 600,
      "autoApprove": [
        "interactive_feedback",
        "optimize_user_input"
      ]
    }
  }
}

推荐配置方式:开发模式 + UI 设置

MCP JSON 中配置开发模式,API key 通过 UI 设置页面管理:

{
  "mcpServers": {
    "interactive-feedback": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/interactive-feedback-mcp",
        "run",
        "interactive-feedback"
      ],
      "timeout": 600,
      "autoApprove": [
        "interactive_feedback",
        "optimize_user_input"
      ]
    }
  }
}

开发模式优势:

  • 最佳稳定性:完整的功能支持和资源文件
  • 实时更新:可以获得最新的代码修复
  • 完整功能:避免PyPI安装可能遇到的问题
  • 灵活配置:API key 通过 UI 界面管理
  • 多提供商:支持多个 AI 提供商配置和切换
  • 用户友好:直观的图形界面配置

优势:

  • 零安装:无需手动安装任何依赖
  • 自动更新:总是使用最新版本
  • 灵活配置:API key 通过 UI 界面管理
  • 多提供商:支持多个 AI 提供商配置和切换
  • 用户友好:直观的图形界面配置

使用步骤:

  1. 在 MCP JSON 中添加上述配置
  2. 重启 AI 助手
  3. 在 UI 设置页面中配置 API key
  4. 开始使用所有功能

方式二:使用pip安装后配置

如果您使用pip安装,配置如下:

{
  "mcpServers": {
    "interactive-feedback": {
      "command": "interactive-feedback",
      "timeout": 600,
      "autoApprove": [
        "interactive_feedback"
      ]
    }
  }
}

方式三:开发模式配置

如果您克隆了仓库进行开发,配置如下:

重要提示:/path/to/interactive-feedback-mcp 替换为您在系统上克隆或解压本仓库的 实际绝对路径

{
  "mcpServers": {
    "interactive-feedback": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/interactive-feedback-mcp",
        "run",
        "interactive-feedback"
      ],
      "timeout": 600,
      "autoApprove": [
        "interactive_feedback"
      ]
    }
  }
}

关于 commandargs 的说明:

  • 如果 uv 在您的系统路径中,并且您希望 uv 管理虚拟环境和运行脚本,可以使用 "command": "uv", "args": ["run", "interactive-feedback"]
  • 如果您更倾向于直接使用系统Python(并已在全局或项目虚拟环境中安装了依赖),可以使用 "command": "interactive-feedback" (需要先安装包)。
  • cwd (Current Working Directory): 强烈建议设置 cwd 为此项目的根目录,以确保脚本能正确找到其依赖文件。
  1. 将以下自定义规则添加到您的AI助手中 (例如,在 Cursor 的设置 -> Rules -> User Rules):

    Always respond in Chinese-simplified
    你是 IDE 的 AI 编程助手,遵循核心工作流(研究 -> 构思 -> 计划 -> 执行 -> 优化 -> 评审)用中文协助用户,面向专业程序员,交互应简洁专业,避免不必要解释。
    
    [沟通守则]
    1.  响应以模式标签 `[模式:X]` 开始,初始为 `[模式:研究]`。
    2.  核心工作流严格按 `研究 -> 构思 -> 计划 -> 执行 -> 优化 -> 评审` 顺序流转,用户可指令跳转。
    
    [核心工作流详解]
    1.  `[模式:研究]`:理解需求。
    2.  `[模式:构思]`:提供至少两种可行方案及评估(例如:`方案 1:描述`)。
    3.  `[模式:计划]`:将选定方案细化为详尽、有序、可执行的步骤清单(含原子操作:文件、函数 / 类、逻辑概要;预期结果;新库用 `Context7` 查询)。不写完整代码。完成后用 `interactive-feedback` 请求用户批准。
    4.  `[模式:执行]`:必须用户批准方可执行。严格按计划编码执行。计划简要(含上下文和计划)存入 `./issues/ 任务名.md`。关键步骤后及完成时用 `interactive-feedback` 反馈。
    5.  `[模式:优化]`:在`[模式:执行]完成后,必须自动进行本模式[模式:优化],自动检查并分析本次任务已实现(仅本次对话产生的相关代码),在[模式:执行]下产生的相关代码。聚焦冗余、低效、垃圾代码,提出具体优化建议(含优化理由与预期收益),用户确认后执行相关优化功能。
    6.  `[模式:评审]`:对照计划评估执行结果,报告问题与建议。完成后用 `mcp-feedback-enhanced` 请求用户确认。
    
    [快速模式]
    `[模式:快速]`:跳过核心工作流,快速响应。完成后用 `interactive-feedback` 请求用户确认。
    
    [主动反馈与 MCP 服务]
    # MCP interactive-feedback 规则
    1. 在任何流程、任务、对话进行时,无论是询问、回复、或完成阶段性任务,皆必须调用 MCP interactive-feedback。
    2. 每当收到用户反馈,若反馈内容非空,必须再次调用 MCP interactive-feedback,并根据反馈内容调整行为。
    3. 仅当用户明确表示「结束」或「不再需要交互」时,才可停止调用 MCP interactive-feedback,流程才算结束。
    4. 除非收到结束指令,否则所有步骤都必须重复调用 MCP interactive-feedback。
    5. 完成任务前,必须使用 MCP interactive-feedback 工具向用户询问反馈。
    * **MCP 服务 **:
        * `interactive-feedback`: 用户反馈。
        * `Context7`: 查询最新库文档 / 示例。
        * `DeepWiki`: 查询相关 GitHub 仓库的文档 / 示例。
        * 优先使用 MCP 服务。
    

    这将确保您的AI助手遵循专业的编程工作流,并在适当时机使用此MCP服务器进行交互式反馈。

🔧 故障排除

如果在安装或配置过程中遇到问题,请参考以下解决方案:

uvx安装故障排除

问题1:首次uvx安装失败,通常由于PySide6等大包下载超时。

解决方案

  1. 预安装工具

    uv tool install interactive-feedback@latest
  2. 修改MCP配置(预安装后):

    {
      "mcpServers": {
        "interactive-feedback": {
          "command": "uvx",
          "args": [
            "interactive-feedback"
          ],
          "timeout": 600,
          "autoApprove": ["interactive_feedback"]
        }
      }
    }

配置方式区别

  • @latest:临时运行,每次都下载最新版本
  • 不带版本号:使用已安装的工具,启动更快

问题2:MCP配置中使用 "command": "uvx" 时出现"命令未找到"错误。

解决方案

  1. 检查uvx安装位置

    # Windows
    where uvx
    
    # Linux/macOS
    which uvx
  2. 使用完整路径

    将MCP配置中的 "uvx" 替换为完整路径,例如:

    {
      "mcpServers": {
        "interactive-feedback": {
          "command": "D:/python/Scripts/uv.exe",
          "args": ["interactive-feedback@latest"],
          "timeout": 600,
          "autoApprove": ["interactive_feedback"]
        }
      }
    }

MCP配置问题

问题:AI助手无法识别或启动服务。

解决方案

  1. 验证JSON格式:确保配置文件语法正确
  2. 检查文件位置:确认 mcp_servers.json 在正确目录
  3. 重启AI助手:修改配置后重启应用程序
  4. 询问AI助手:将配置文件内容提供给AI,请求配置建议

示例:在Cursor中询问:"我在配置MCP服务时遇到问题,请帮我检查这个配置:[粘贴您的配置]"

详细的故障排除指南请参阅 安装与配置指南.md

🙏 致谢

📄 许可证

此项目使用 MIT 许可证。详情请参阅 LICENSE 文件。

About

Interactive User Feedback MCP

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%