交互式反馈MCP服务

一个高性能的Go语言实现的交互式反馈MCP服务,提供增强的对话历史记录、Markdown复制支持,并显著优于Python版本的性能。

  • by iimvh
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ismhac/interactive-feedback-mcp-go

使用说明

交互式反馈MCP - Go语言实现

一个高性能的Go语言实现的交互式反馈MCP(可能指某种消息传递或控制协议),其特点包括增强的对话历史记录功能,支持Markdown格式复制,并且性能相较于Python版本有显著提升。

由Fábio Ferreira开发的原始Python版本@fabiomlferreira(这个用户名或标签在中文中通常保持不变,直接使用))。
结账离开 dotcursorrules.com 可以翻译为“光标规则点网站”(注:实际翻译时,“dotcursorrules.com”作为一个域名,可能没有一个固定的中文翻译,这里根据其字面意思进行了意译,具体翻译可能需根据网站实际内容和用途来确定)。如果这是一个关于光标规则或点操作的网站,那么“光标规则点网站”可以作为一个大致的描述。但请注意,实际应用中,域名通常不直接翻译,而是保留原样或根据上下文进行适当解释 以获得更多的人工智能开发增强功能。

原始存储库: noopstudios/interactive-feedback-mcp 翻译为中文是:noopstudios/交互式反馈MCP(或“交互式反馈管理控制面板”,具体翻译可能根据上下文有所调整,MCP在此处可能是一个特定项目、模块或系统的名称,因此直接保留原英文缩写)

致谢

这个Go语言实现是对Fábio Ferreira最初基于Python开发的交互式反馈MCP(多选择问题)的高性能重写版本。我们对Fábio在原始项目上的创新工作表示衷心的感谢,他的工作启发了这个Go语言版本的开发。原始的Python实现可以在以下位置找到: https://github.com/noopstudios/interactive-feedback-mcp 翻译为中文是:“https://github.com/noopstudios/交互式反馈-MCP(或:交互式反馈多线程处理组件,具体翻译取决于MCP在此上下文中的具体含义)”。不过,通常“MCP”可能是一个特定项目、库或工具的缩写,没有具体上下文很难给出确切的翻译,所以这里保留了“MCP”并给出了一个通用的翻译思路。如果“MCP”有特定含义,需要根据实际情况进行调整。

这个Go版本在保持与原始MCP协议完全兼容的同时,提供了显著的性能提升和额外功能,以增强用户体验。

简单 MCP 服务器 在像(某类)AI辅助开发工具中实现人类参与的工作流程 光标这个Go语言实现提供了与原始Python版本相同的功能,但性能大幅提升,并且增加了额外特性。

性能优势

  • 内存使用情况12-25MB(对比Python的40-80MB)
  • 启动时间0.2-0.5秒(对比Python的1.5-3.0秒)
  • 包大小8-18MB(相比之下,Python为50-100MB)
  • CPU使用率空闲时<1%
  • 单二进制无需外部依赖

与原版的比较

特性 原生 Python Go 语言实现
语言 Python 3.11+ Go 1.21+
依赖项 Qt、uv、Python包 单一二进制文件
内存使用量 40-80MB 12-25MB
启动时间 1.5-3.0秒 0.2-0.5秒
包大小 50-100MB 8-18MB
图形用户界面(GUI)框架 Qt(PyQt/PySide) Tkinter(Python)
配置 QSettings JSON 文件
对话历史 不可用 ✅ 可用
Markdown 复制 不可用 ✅ 可用
自动 .gitignore 不可用 ✅ 可用
富文本支持 有限 ✅ 完全支持
空反馈 不支持 ✅ 支持

注这个Go语言实现版本在保持与原始MCP协议完全兼容的同时,还显著提升了性能并增加了增强功能。

特点/功能

核心功能

  • 交互式反馈用户界面使用Tkinter的现代桌面图形用户界面
  • 对话历史显示用户与AI助手之间的聊天历史
  • Markdown 复制以代码块形式复制Markdown格式的对话
  • 项目特定配置设置按项目目录保存
  • 跨平台支持在Windows、macOS和Linux系统上均可运行
  • 自动管理.gitignore文件自动将配置文件添加到.gitignore

增强功能(相较于Python版本)

  • 更佳性能优化内存使用并加快执行速度
  • 对话历史修剪自动将历史记录限制为10条
  • 空反馈支持用户可以跳过反馈而不会出错
  • 富文本支持处理Markdown、表情符号和特殊字符
  • 自动Git忽略文件防止配置文件被提交

安装

🚀 快速安装(推荐)

从GitHub发布页面下载预编译包:

  1. 下载 适用于您操作系统的安装包:

    • Linux(发音类似“林克斯”): interactive-feedback-mcp-linux-amd64.tar.gz
    • Windows: interactive-feedback-mcp-windows-amd64.zip
    • macOS Intel版: interactive-feedback-mcp-darwin-amd64.tar.gz
    • macOS Apple Silicon(苹果硅): interactive-feedback-mcp-darwin-arm64.tar.gz
  2. 提取并安装:

    # Linux/macOS
    tar -xzf interactive-feedback-mcp-*.tar.gz
    cd interactive-feedback-mcp-*
    sudo ./install.sh
    
    # Windows
    # Extract zip file, then right-click install.bat → "Run as administrator"
    
  3. 配置光标MCP(鼠标光标位置控制):

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

🔧 开发安装

对于希望从源代码构建的开发者:

先决条件

  • Go 1.21 或更高版本
  • Python 3.x(用于桌面图形用户界面)
  • Git

从源代码构建

# Clone the repository
git clone https://github.com/your-org/interactive-feedback-mcp-go.git
cd interactive-feedback-mcp-go

# Install dependencies
go mod tidy

# Build the MCP server
go build -o mcp-server-single cmd/mcp-server-single/main.go

# Make it executable
chmod +x mcp-server-single

跨平台构建

# Use the build script for all platforms
./scripts/build.sh

# Or build manually for specific platforms
GOOS=windows GOARCH=amd64 go build -o mcp-server-single.exe cmd/mcp-server-single/main.go
GOOS=linux GOARCH=amd64 go build -o mcp-server-single-linux cmd/mcp-server-single/main.go
GOOS=darwin GOARCH=amd64 go build -o mcp-server-single-macos cmd/mcp-server-single/main.go

创建软件包

# Create .zip and .tar.gz packages for distribution
./scripts/build-packages.sh

配置

光标MCP配置

在您的Cursor MCP配置文件中添加以下内容:

{
  "mcpServers": {
    "interactive-feedback": {
      "command": "/path/to/interactive-feedback-mcp-go/mcp-server-single",
      "args": []
    }
  }
}

项目配置

MCP服务器自动创建 .interactive-feedback-config.json 在你的项目目录中,结构如下:

{
  "run_command": "",
  "execute_automatically": false,
  "command_section_visible": true,
  "conversation_history": [
    {
      "id": "unique-id",
      "timestamp": "2025-10-19T01:00:00Z",
      "role": "user|assistant",
      "content": "Message content",
      "is_current": false
    }
  ]
}

自动管理.gitignore文件

MCP服务器自动添加 .interactive-feedback-config.json 到你项目的 .gitignore 文件,用于防止配置文件被提交到版本控制系统中。

使用方法

运行MCP服务器

# Run the MCP server
./mcp-server-single

# The server will listen for JSON-RPC requests on stdin

MCP工具定义

服务器提供以下工具:

工具名称: interactive_feedback

描述获取用户对开发任务的互动反馈

参数:

  • projectDirectory (字符串,必填):项目目录路径
  • prompt (字符串,必需):要显示给用户的消息提示
  • previousUserRequest (字符串,必填):触发此交互式反馈的前一个用户请求

示例用法:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "interactive_feedback",
    "arguments": {
      "projectDirectory": "/path/to/project",
      "prompt": "Please provide your feedback on this implementation",
      "previousUserRequest": "User requested help with implementing a feature"
    }
  }
}

桌面图形用户界面

当调用MCP服务器时,它会自动启动一个带有以下内容的桌面图形用户界面(GUI):

  1. 对话历史显示显示之前的用户请求和助手提示
  2. 复制对话按钮以Markdown格式复制对话历史
  3. 反馈输入用户反馈文本区域
  4. 提交/取消按钮提交反馈或不提交反馈直接取消

对话历史

该系统具有以下功能,用于维护对话历史记录:

  • 自动修剪仅保留最后10条对话记录
  • 富文本支持处理Markdown、表情符号和特殊字符
  • Markdown 复制将对话复制为格式化的Markdown
  • 空反馈支持用户可以无错误地跳过反馈

提示工程

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

每当你想提问时,务必联系MCP interactive_feedback.
每当你即将完成一个用户请求时,请调用MCP(管理控制面板/主控制程序,具体含义根据上下文确定) interactive_feedback 而不是仅仅结束这个过程。
持续调用MCP,直到用户的反馈为空,然后结束请求。

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

为什么要使用这个?

通过引导助手与用户进行确认,而不是分支出去进行推测性的、高成本的工具调用,该模块可以大幅减少像Cursor这样的平台上对高级功能的请求(例如,OpenAI工具调用)。在某些情况下,它有助于将多达25次的工具调用合并为一个单一的、能够感知反馈的请求——从而节省资源并提高性能。

发展

项目结构

interactive-feedback-mcp-go/
├── cmd/mcp-server-single/main.go    # MCP server implementation
├── internal/                        # Core logic
│   ├── config/                     # Configuration management
│   ├── executor/                    # Command execution
│   ├── types/                       # Data structures
│   └── ui/                          # UI components
├── scripts/                         # Build scripts
├── desktop_gui_single.py           # Python desktop GUI
└── README.md                       # This file

建筑;大楼

# Build for current platform
go build -o mcp-server-single cmd/mcp-server-single/main.go

# Build for all platforms
./scripts/build.sh

测试

# Run all tests
go test ./...

# Run specific package tests
go test ./internal/config
go test ./internal/executor
go test ./internal/types

许可证

这个项目遵循MIT许可证授权——详见 许可证 文件中有详细信息。

做出贡献

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 进行你的更改
  4. 为新功能添加测试
  5. 运行测试以确保一切正常工作
  6. 提交拉取请求

支持

对于问题和疑问:

  • 在GitHub上创建一个议题
  • 查阅文档
  • 查看测试文件中的使用示例

致谢与感谢

如果没有原始的工作成果,这个项目是不可能实现的 法比奥·费雷拉 (@fabiomlferreira(这个用户名直接翻译仍为原样,因为用户名通常不进行翻译,除非有特定含义或需要根据上下文进行意译,但在此处保持原样更为合适))。 他创新的交互式反馈MCP(多通道处理)实现方式,对推动人工智能辅助开发工作流程的发展起到了重要作用。

特别感谢:

  • 法比奥·费雷拉 用于创建最初的Python实现
  • noopstudios(可译为“无操作工作室”或根据具体语境调整为更贴切的名称,但直接音译为“努欧工作室”或“诺普工作室”也是可接受的) 用于托管原始仓库
  • 感谢MCP社区的反馈和贡献
  • 所有在开发过程中提供了宝贵反馈的用户

原始项目: https://github.com/noopstudios/interactive-feedback-mcp 翻译为中文是:“https://github.com/noopstudios/交互式反馈MCP(或:交互式反馈模块/组件,具体根据上下文确定MCP的含义)”。不过,通常我们不会直接翻译网址,而是直接使用原网址或简要说明其内容。所以,如果非要给出一个翻译后的表述,可以是:“GitHub上的交互式反馈MCP项目(或类似描述,具体根据MCP在该项目中的实际含义)”

这个Go语言的实现是我们回馈社区的一种方式,它提供了一个高性能的替代方案,同时保持了与原始MCP协议的完全兼容性。