Metadata-Version: 2.4
Name: iflow-mcp_andrei-cb-feedback-term
Version: 1.0.0
Summary: An interactive feedback system for MCP (Model Context Protocol) that allows agents to request user feedback during task execution.
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: mcp>=1.0.0

# MCP Feedback Server

An interactive feedback system for MCP (Model Context Protocol) that allows agents to request user feedback during task execution.

## Overview

This system consists of:
- **feedback_server.py**: The main MCP server that runs in your terminal and handles feedback requests
- **feedback_client.py**: A test client script demonstrating how agents connect to request feedback

## Installation

1. Install the required dependencies:
```bash
pip install mcp
```

## Usage

### Step 1: Start the Feedback Server

Run the server in a terminal:
```bash
python feedback_server.py
```

The server will:
- Start on `localhost:9876` 
- Display a message when ready
- Show agent requests and allow you to provide feedback interactively

### Step 2: Configure Your MCP Agent

Add the server to your MCP configuration file (e.g., `mcp_config.json`):

```json
{
  "mcpServers": {
    "feedback-server": {
      "command": "python",
      "args": [
        "/<path_to_script>/feedback_client.py"
      ]
    }
  }
}
```

### Step 3: Agent Prompt

Use this prompt with your agent:
```
Whenever you're about to complete a user request, call the MCP interactive_feedback instead of simply ending the process. Keep calling MCP until the user's feedback is empty, then end the request.
```

## How It Works

1. **Agent calls the tool**: When an agent needs feedback, it calls the `interactive_feedback` tool with:
   - `work_summary`: Summary of work completed so far
   - `question` (optional): Specific question for the user

2. **Server displays request**: The feedback server shows:
   - Timestamp of the request
   - Work summary from the agent
   - Any specific questions

3. **User provides feedback**: In the terminal running the server:
   - Type feedback and press Enter to send it back to the agent
   - Press Enter with empty input to approve and let the agent continue

4. **Agent receives response**: The agent gets either:
   - User feedback to act upon
   - Approval to continue (when feedback is empty)

## Example Interaction

### In the server terminal:
```
🚀 Feedback Server started on localhost:9876
Waiting for agent connections...

==============================================================
📝 AGENT REQUEST - 2025-01-15 14:30:45
==============================================================

Work Summary:
I have completed the following tasks:
1. Created the user authentication system
2. Set up the database models
3. Implemented the API endpoints

Agent's Question:
Should I proceed with adding the frontend components?

==============================================================
📌 Your Feedback (press Enter with empty input to approve and continue):
> Yes, but make sure to use React with TypeScript
✅ Feedback sent to agent: 'Yes, but make sure to use React with TypeScript'
```

## Features

- ✅ Real-time interactive feedback
- ✅ Socket-based communication (no polling)
- ✅ Clear visual feedback in terminal
- ✅ Support for both general feedback and specific questions
- ✅ Simple approval mechanism (empty input = continue)
- ✅ Error handling and connection management

## Troubleshooting

- **Connection refused**: Make sure the feedback server is running before the agent tries to connect
- **Port already in use**: The server uses port 9876 by default. Make sure no other process is using this port
- **MCP not found**: Install the MCP package using `pip install mcp`

## Architecture

The system uses a dual-server architecture:
1. **MCP Server**: Handles the MCP protocol and tool definitions
2. **Socket Server**: Manages the interactive feedback loop in the terminal

This design allows for real-time interaction while maintaining compatibility with the MCP protocol.
