使用说明
交互式反馈MCP - Go语言实现
一个高性能的Go语言实现的交互式反馈MCP(可能指某种消息传递或控制协议),其特点包括增强的对话历史记录功能,支持Markdown格式复制,并且性能相较于Python版本有显著提升。
由Fábio Ferreira开发的原始Python版本@fabiomlferreira(这个用户名或标签在中文中通常保持不变,直接使用))。
结账离开 dotcursorrules.com 可以翻译为“光标规则点网站”(注:实际翻译时,“dotcursorrules.com”作为一个域名,可能没有一个固定的中文翻译,这里根据其字面意思进行了意译,具体翻译可能需根据网站实际内容和用途来确定)。如果这是一个关于光标规则或点操作的网站,那么“光标规则点网站”可以作为一个大致的描述。但请注意,实际应用中,域名通常不直接翻译,而是保留原样或根据上下文进行适当解释 以获得更多的人工智能开发增强功能。
致谢
这个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发布页面下载预编译包:
-
下载 适用于您操作系统的安装包:
- 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
- Linux(发音类似“林克斯”):
-
提取并安装:
# 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" -
配置光标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):
- 对话历史显示显示之前的用户请求和助手提示
- 复制对话按钮以Markdown格式复制对话历史
- 反馈输入用户反馈文本区域
- 提交/取消按钮提交反馈或不提交反馈直接取消
对话历史
该系统具有以下功能,用于维护对话历史记录:
- 自动修剪仅保留最后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许可证授权——详见 许可证 文件中有详细信息。
做出贡献
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支
- 进行你的更改
- 为新功能添加测试
- 运行测试以确保一切正常工作
- 提交拉取请求
支持
对于问题和疑问:
- 在GitHub上创建一个议题
- 查阅文档
- 查看测试文件中的使用示例
致谢与感谢
如果没有原始的工作成果,这个项目是不可能实现的 法比奥·费雷拉 (@fabiomlferreira(这个用户名直接翻译仍为原样,因为用户名通常不进行翻译,除非有特定含义或需要根据上下文进行意译,但在此处保持原样更为合适))。 他创新的交互式反馈MCP(多通道处理)实现方式,对推动人工智能辅助开发工作流程的发展起到了重要作用。
特别感谢:
- 法比奥·费雷拉 用于创建最初的Python实现
- noopstudios(可译为“无操作工作室”或根据具体语境调整为更贴切的名称,但直接音译为“努欧工作室”或“诺普工作室”也是可接受的) 用于托管原始仓库
- 感谢MCP社区的反馈和贡献
- 所有在开发过程中提供了宝贵反馈的用户
这个Go语言的实现是我们回馈社区的一种方式,它提供了一个高性能的替代方案,同时保持了与原始MCP协议的完全兼容性。