Skip to main content
Glama

feedback-loop-mcp

by tuandinh-org
README.md8.22 kB
# Feedback Loop MCP Simple MCP Server to enable a human-in-the-loop workflow in AI-assisted development tools like Cursor. This server allows you to run commands, view their output, and provide textual feedback directly to the AI. It is also compatible with Cline and Windsurf. > **Inspiration**: This project is inspired by [interactive-feedback-mcp](https://github.com/noopstudios/interactive-feedback-mcp) by Fábio Ferreira (@fabiomlferreira). ## Features - **Cross-platform**: Works on macOS, Windows, and Linux - **Interactive UI**: Modern, responsive interface for collecting feedback - **Settings persistence**: Save and restore UI preferences per project - **MCP integration**: Seamlessly integrates with MCP-compatible AI assistants - **macOS overlay support**: Native overlay window support on macOS - **Dynamic Quick Feedback**: Provide custom, clickable quick feedback options directly through the MCP tool call, allowing for context-specific suggestions. ## Screenshot ![Feedback Loop MCP Interface](images/Screenshot.png) *The feedback collection interface with macOS vibrancy effects* ## Installation ### Quick Start with npx (Recommended) The easiest way to use this MCP server is via npx: ```bash npx feedback-loop-mcp ``` ### Global Installation For frequent use, install globally: ```bash npm install -g feedback-loop-mcp feedback-loop-mcp ``` ### Local Development Setup For development or customization: 1. Clone the repository: ```bash git clone <repository-url> cd feedback-loop-mcp ``` 2. Install dependencies: ```bash npm install ``` 3. Run in development mode: ```bash npm run dev ``` ## MCP Server Configuration ### Cursor IDE Add the following configuration to your Cursor settings (`mcp.json`): ```json { "mcpServers": { "feedback-loop-mcp": { "command": "npx", "args": ["feedback-loop-mcp"], "timeout": 600, "autoApprove": [ "feedback_loop" ] } } } ``` ### Cline / Windsurf Similar setup principles apply. Configure the server command in your MCP settings: ```json { "mcpServers": { "feedback-loop-mcp": { "command": "npx", "args": ["feedback-loop-mcp"] } } } ``` ### Claude Desktop Add to your Claude Desktop configuration: ```json { "mcpServers": { "feedback-loop-mcp": { "command": "npx", "args": ["feedback-loop-mcp"] } } } ``` ## Usage The `feedback_loop` tool accepts the following arguments: - `project_directory` (string, required): Full path to the project directory. - `prompt` (string, required): Combined summary and question, describing what was done and asking for specific feedback. - `quickFeedbackOptions` (array of strings, optional): A list of predefined feedback strings that will be displayed as clickable options in the UI for faster feedback. Example tool call from an AI assistant: ```javascript feedback_loop_mcp({ project_directory: "/path/to/your/project", prompt: "I implemented the new user authentication flow with JWT. Does this approach meet your requirements?", quickFeedbackOptions: [ "Yes, looks good!", "Needs minor changes to the error handling.", "Please try a different approach." ] }); ``` ### Running the Server #### Via npx (Recommended) ```bash npx feedback-loop-mcp ``` #### Via Global Installation ```bash feedback-loop-mcp ``` #### Local Development ```bash npm start ``` ### Command Line Arguments The application accepts the following command-line arguments: - `--project-directory <path>`: Set the project directory - `--prompt <text>`: Set the initial prompt/summary text Example: ```bash npm start -- --project-directory "/path/to/project" --prompt "Please review this code" ``` ### Available Tools The MCP server provides the following tool: - **`feedback_loop`**: Displays a UI for collecting user feedback and returns the response Example usage in AI assistants: ```json { "tool_name": "feedback_loop", "arguments": { "project_directory": "/path/to/your/project", "summary": "I've implemented the changes you requested and refactored the main module." } } ``` ## Prompt Engineering For the best results, add the following to your custom prompt in your AI assistant: ``` Whenever you want to ask a question, always call the MCP feedback_loop tool. Whenever you're about to complete a user request, call the MCP feedback_loop tool instead of simply ending the process. Keep calling the feedback_loop tool until the user's feedback is empty, then end the request. ``` This ensures your AI assistant uses this MCP server to request user feedback before marking tasks as completed. ## Benefits By guiding the assistant to check in with the user instead of branching out into speculative, high-cost tool calls, this module can drastically reduce the number of premium requests (e.g., OpenAI tool invocations) on platforms like Cursor. In some cases, it helps consolidate what would be up to 25 tool calls into a single, feedback-aware request — saving resources and improving performance. Built applications will be available in the `dist` directory. ## Project Structure ``` feedback-loop-mcp/ ├── main.js # Main Electron process ├── preload.js # Preload script for secure IPC ├── package.json # Project configuration ├── README.md # This file ├── assets/ # Static assets │ └── feedback.png # Application icon ├── renderer/ # Renderer process files │ ├── index.html # Main UI │ ├── styles.css # Styling │ └── renderer.js # UI logic └── server/ # MCP server └── mcp-server.js # Node.js MCP server ``` ## Configuration The application automatically saves settings using Electron's built-in storage: - **General settings**: Window size, position, and UI preferences - **Project-specific settings**: Command history and project-specific configurations Settings are stored in the standard application data directory for each platform. ## Features Overview ### Feedback Collection - Rich text feedback input - Automatic saving of feedback - JSON output format for easy integration - Timestamp and project information included ## Prompt Engineering Crafting effective prompts is key to getting useful feedback. When using the `prompt` parameter, aim to: 1. **Be concise but complete**: Describe what was done and what feedback you need in a single, clear statement. 2. **Include context**: Mention key implementation details or choices that affect the feedback you're seeking. 3. **Ask a specific question**: End with a clear question that guides the user to provide the feedback you need. 4. **Frame the question properly**: Instead of "Does this look good?" try "Does this implementation address your requirements for X?" Example of an effective prompt: ``` I've implemented user authentication using JWT with a 24-hour expiration and refresh tokens. Does this approach provide the security level you need for this application? ``` ### Quick Feedback Options When defining `quickFeedbackOptions`, consider: - Provide 3-5 options maximum for best UX - Include both positive and constructive feedback options - Make options specific to the context, not generic - Order options from most positive to most critical Example of well-designed quick feedback options: ```javascript quickFeedbackOptions: [ "Perfect, exactly what I needed", "Good approach, but please add more validation", "I'd prefer a different authentication method", "Let's discuss alternatives in more detail" ] ``` ## Development For development and build information, see [DEVELOPMENT.md](DEVELOPMENT.md). ## Troubleshooting ### Common Issues 1. **MCP server not connecting**: Ensure the server is running and the configuration is correct 2. **npx command not found**: Make sure Node.js and npm are properly installed 3. **Permission errors**: On Unix systems, you may need to make the binary executable ### Debug Mode Run with debug output: ```bash DEBUG=* npx feedback-loop-mcp ``` ## License MIT License - see package.json for details.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tuandinh-org/feedback-loop-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server