返回市场
反馈循环-MCP

反馈循环-MCP

作者:tuandinh-org5 星标更新:2025-06-04

项目介绍

Feedback Loop MCP

一个简单的MCP服务器,用于在类似Cursor这样的AI辅助开发工具中实现人机交互工作流程。此服务器允许您运行命令、查看其输出,并直接向AI提供文本反馈。它还兼容Cline和Windsurf。

灵感来源:该项目受到Fábio Ferreira (@fabiomlferreira)的interactive-feedback-mcp项目的启发。

特性

  • 跨平台:支持macOS、Windows和Linux
  • 交互式UI:现代且响应式的界面,用于收集反馈
  • 设置持久化:保存并恢复每个项目的UI偏好设置
  • MCP集成:无缝集成到与MCP兼容的AI助手
  • macOS叠加窗口支持:在macOS上原生支持叠加窗口
  • 动态快速反馈:通过MCP工具调用直接提供自定义的可点击快速反馈选项,允许针对特定上下文提出建议。

截图

Feedback Loop MCP界面

带有macOS活力效果的反馈收集界面

安装

快速开始(推荐)

使用npx是最简单的方式:

npx feedback-loop-mcp

全局安装

对于频繁使用,可以全局安装:

npm install -g feedback-loop-mcp
feedback-loop-mcp

本地开发环境设置

为了开发或定制:

  1. 克隆仓库:

    git clone <repository-url>
    cd feedback-loop-mcp
    
  2. 安装依赖:

    npm install
    
  3. 开发模式运行:

    npm run dev
    

MCP服务器配置

Cursor IDE

在您的Cursor设置(mcp.json)中添加以下配置:

{
  "mcpServers": {
    "feedback-loop-mcp": {
      "command": "npx",
      "args": ["feedback-loop-mcp"],
      "timeout": 600,
      "autoApprove": [
        "feedback_loop"
      ]
    }
  }
}

Cline / Windsurf

类似的设置原则适用。在您的MCP设置中配置服务器命令:

{
  "mcpServers": {
    "feedback-loop-mcp": {
      "command": "npx",
      "args": ["feedback-loop-mcp"]
    }
  }
}

Claude Desktop

在您的Claude Desktop配置中添加:

{
  "mcpServers": {
    "feedback-loop-mcp": {
      "command": "npx",
      "args": ["feedback-loop-mcp"]
    }
  }
}

使用方法

feedback_loop工具接受以下参数:

  • project_directory(字符串,必需):项目目录的完整路径。
  • prompt(字符串,必需):结合总结和问题描述,说明已做了什么并请求具体的反馈。
  • quickFeedbackOptions(字符串数组,可选):一组预定义的反馈字符串,将在UI中显示为可点击的选项,以便更快地提供反馈。

来自AI助手的示例工具调用:

feedback_loop_mcp({
  project_directory: "/path/to/your/project",
  prompt: "我实现了新的用户认证流程,使用了JWT。这种方法是否符合您的要求?",
  quickFeedbackOptions: [
    "是的,看起来很好!",
    "需要对错误处理进行一些小改动。",
    "请尝试不同的方法。"
  ]
});

运行服务器

通过npx(推荐)

npx feedback-loop-mcp

通过全局安装

feedback-loop-mcp

本地开发

npm start

命令行参数

应用程序接受以下命令行参数:

  • --project-directory <path>:设置项目目录
  • --prompt <text>:设置初始提示/总结文本

示例:

npm start -- --project-directory "/path/to/project" --prompt "请审阅这段代码"

可用工具

MCP服务器提供了以下工具:

  • feedback_loop:显示用于收集用户反馈的UI,并返回响应

在AI助手中的示例使用:

{
  "tool_name": "feedback_loop",
  "arguments": {
    "project_directory": "/path/to/your/project",
    "summary": "我已经实现了您请求的更改,并重构了主模块。"
  }
}

提示工程

为了获得最佳结果,在您的AI助手的自定义提示中添加以下内容:

每当您想要提问时,请始终调用MCP的feedback_loop工具。
当您即将完成用户请求时,请调用MCP的feedback_loop工具,而不是简单地结束过程。
持续调用feedback_loop工具,直到用户的反馈为空,然后结束请求。

这确保您的AI助手在标记任务为已完成之前,使用这个MCP服务器请求用户反馈。

优势

通过引导助手检查用户反馈而不是分支出投机性的高成本工具调用,该模块可以大大减少像Cursor这样的平台上昂贵的请求数量(例如OpenAI工具调用)。在某些情况下,它可以将多达25次的工具调用整合成一次反馈感知请求——节省资源并提高性能。

构建的应用程序将可在dist目录中找到。

项目结构

feedback-loop-mcp/
├── main.js              # 主Electron进程
├── preload.js           # 用于安全IPC的预加载脚本
├── package.json         # 项目配置
├── README.md           # 此文件
├── assets/             # 静态资产
│   └── feedback.png    # 应用图标
├── renderer/           # 渲染器进程文件
│   ├── index.html      # 主UI
│   ├── styles.css      # 样式
│   └── renderer.js     # UI逻辑
└── server/             # MCP服务器
    └── mcp-server.js   # Node.js MCP服务器

配置

应用程序自动使用Electron内置存储保存设置:

  • 通用设置:窗口大小、位置和UI偏好设置
  • 项目特定设置:命令历史记录和项目特定配置

设置存储在每个平台的标准应用数据目录中。

功能概述

反馈收集

  • 富文本反馈输入
  • 自动保存反馈
  • JSON输出格式,便于集成
  • 包含时间戳和项目信息

提示工程

有效提示的关键在于获取有用的反馈。使用prompt参数时,目标是:

  1. 简洁但完整:用一个清晰的陈述描述所做的事情以及所需的反馈。
  2. 包含上下文:提及影响您寻求反馈的关键实现细节或选择。
  3. 提出具体问题:以一个明确的问题结尾,引导用户提供您需要的反馈。
  4. 正确表述问题:不要问“这看起来好吗?”而是问“这种实现是否满足您对X的需求?”

有效提示的示例:

我已使用JWT实现了用户认证,具有24小时过期时间和刷新令牌。这种方法是否提供了此应用程序所需的保护级别?

快速反馈选项

定义quickFeedbackOptions时,考虑以下几点:

  • 最多提供3-5个选项以获得最佳用户体验
  • 包括积极和建设性的反馈选项
  • 让选项具体针对上下文,而非泛泛而谈
  • 按从最积极到最重要的顺序排列选项

设计良好的快速反馈选项示例:

quickFeedbackOptions: [
  "完美,正是我需要的",
  "好的方法,但请增加更多的验证",
  "我更喜欢不同的认证方法",
  "让我们详细讨论其他替代方案"
]

开发

有关开发和构建的信息,请参见DEVELOPMENT.md

故障排除

常见问题

  1. MCP服务器无法连接:确保服务器正在运行并且配置正确
  2. 未找到npx命令:确保Node.js和npm已正确安装
  3. 权限错误:在Unix系统上,可能需要将二进制文件设为可执行

调试模式

带调试输出运行:

DEBUG=* npx feedback-loop-mcp

许可证

MIT许可证 - 详情见package.json。