Content
## Usage Tutorial
Visit the [Releases page](../../releases) to download the precompiled binaries suitable for your platform.
1. Configure mcp: Simply fill in the file path like `C:/Users/gofeedback.exe`

2. Configure prompt:
```
“Whenever you want to ask a question, always call the MCP tool collect_feedback.
Whenever you’re about to complete a user request, call the MCP tool collect_feedback instead of simply ending the process. Keep calling MCP tool collect_feedback until the user’s feedback is empty, then end the request.”
```
## Go Feedback
A feedback collection tool developed in Go, using the Fyne GUI framework and the MCP (Model Context Protocol) protocol, providing user feedback collection functionality for AI assistants to enable multiple inputs in a single call.

## 🚀 Features
- **GUI Interface**: Provides a user-friendly graphical interface using the Fyne framework
- **MCP Protocol Support**: Implements the Model Context Protocol for seamless integration with AI assistants
- **Real-time Feedback Collection**: Supports real-time collection and processing of text feedback
- **Timeout Control**: Configurable timeout mechanism, defaulting to 2 minutes
- **Cross-platform**: Supports Windows, macOS, and Linux
## 🛠️ Installation and Build
### 1. Clone the Project
```bash
git clone <repository-url>
cd gofeedback
```
### 2. Install Dependencies
```bash
go mod tidy
```
### 3. Build the Project
```bash
# Build the executable
go build -o gofeedback gofeedback.go
# Or run directly
go run gofeedback.go
```
## 🎯 Usage Method
### Run as MCP Server
Once the program starts, it will automatically create an MCP server to communicate with the AI assistant via standard input and output.
### Tool Invocation
The MCP server provides the `collect_feedback` tool, supporting the following parameters:
- `work_summary` (string): AI work completion report
- `timeout_seconds` (number, optional): Timeout duration (seconds), default is 120 seconds
### GUI Interface
When a feedback collection request is received, the program will pop up a GUI window:
1. **Work Report Area**: Displays the work completion report provided by the AI
2. **Feedback Input Area**: Users can input text feedback
3. **Action Buttons**:
- ✅ Submit Feedback: Submit the user-input feedback
- ❌ Cancel Feedback: Cancel the current feedback collection
## 📦 Dependencies
Main dependencies include:
- `fyne.io/fyne/v2` - GUI framework
- `github.com/mark3labs/mcp-go` - MCP protocol implementation
### 🔧 Development
#### Project Structure
```
gofeedback/
├── .github/
│ └── workflows/
│ ├── build-and-release.yml # Build and release workflow
│ └── test.yml # Test workflow
├── gofeedback.go # Main program file
├── go.mod # Go module file
├── go.sum # Dependency checksum file
├── .gitignore # Git ignore file
└── README.md # Project documentation
```
#### Core Components
- **MCP Server**: Handles communication with the AI assistant
- **GUI Application**: Provides the user interaction interface
- **Feedback Processor**: Manages the feedback collection logic
#### Local Development
```bash
# Run tests
go test -v ./...
# Check code format
go fmt ./...
# Static analysis
go vet ./...
# Local build
go build -v .
```
#### Local Cross-Platform Build
The project provides multiple ways to perform local cross-platform builds:
**Using Makefile (recommended):**
```bash
# View all available commands
make help
# Build for all platforms
make build-all
# Development workflow (formatting, testing, building)
make dev
# Create release archive
make archive
```
**Using Build Script:**
```bash
# Linux/macOS
chmod +x build.sh
./build.sh [version]
# Windows
build.bat [version]
```
**Manual Build:**
```bash
# Windows
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 go build -o gofeedback-windows-amd64.exe .
# macOS Intel
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build -o gofeedback-darwin-amd64 .
# macOS Apple Silicon
GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go build -o gofeedback-darwin-arm64 .
# Linux x64
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -o gofeedback-linux-amd64 .
# Linux ARM64 (requires cross-compiler)
GOOS=linux GOARCH=arm64 CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc go build -o gofeedback-linux-arm64 .
```
## 🤝 Contribution
Thanks to [mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector)
Feel free to submit Issues and Pull Requests to improve this project.
## 📄 License
This project is open-sourced under the MIT License.
## 📞 Contact
For any questions or suggestions, please contact us via:
- Submit a GitHub Issue