Leo Feedback MCP
A customized MCP (Model Context Protocol) server for interactive feedback collection during AI-assisted development. Built with a Flutter Web frontend and Python/FastAPI backend.
Features
- Flutter Web UI with dark theme for interactive feedback
- AI Work Summary panel with Markdown rendering
- Image support - upload, drag & drop from IDE, paste (PNG, JPG, GIF, BMP, WebP)
- Auto-submit countdown with configurable prompts
- Audio & browser notifications when AI requests feedback
- Session history - persists across browser reloads via backend storage
- Drag & drop files from IDE (Cursor) into the feedback panel
- Keyboard shortcuts - Ctrl+Enter / Cmd+Enter for quick submit
- Smart browser detection (WSL, SSH, local)
- Session management with auto-cleanup
Architecture
┌─────────────────────────────────────────────┐
│ Cursor / AI Client │
│ (calls leo_feedback_mcp MCP tool) │
└──────────────┬──────────────────────────────┘
│ MCP Protocol (stdio)
┌──────────────▼──────────────────────────────┐
│ Python Backend │
│ ├── FastMCP server (MCP tool definitions) │
│ ├── FastAPI (HTTP routes + WebSocket) │
│ └── Session management & image processing │
└──────────────┬──────────────────────────────┘
│ HTTP + WebSocket
┌──────────────▼──────────────────────────────┐
│ Flutter Web Frontend │
│ ├── Workspace (AI Summary + Feedback) │
│ ├── Sessions (chat history) │
│ ├── Settings (auto-submit, timeout) │
│ └── About │
└─────────────────────────────────────────────┘
Requirements
Installation
Option A: Install from PyPI (recommended for users)
pip install leo-feedback-mcp
Or with uv:
uv pip install leo-feedback-mcp
MCP configuration (.cursor/mcp.json):
{
"mcpServers": {
"leo-feedback-mcp": {
"command": "uvx",
"args": ["leo-feedback-mcp"],
"timeout": 180,
"autoApprove": ["leo_feedback_mcp"]
}
}
}
Option B: Install from source (for development)
git clone <your-repo-url> ~/Desktop/leo-feedback-mcp
cd ~/Desktop/leo-feedback-mcp
make init
make build
MCP configuration (.cursor/mcp.json):
{
"mcpServers": {
"leo-feedback-mcp": {
"command": "uv",
"args": [
"run",
"--directory",
"<path-to-leo-feedback-mcp>",
"leo-feedback-mcp"
],
"timeout": 180,
"autoApprove": ["leo_feedback_mcp"]
}
}
}
Replace <path-to-leo-feedback-mcp> with the actual path to the cloned repository.
Apply configuration
You can place the MCP config in:
- Project-level:
.cursor/mcp.jsonin your project root - Global:
~/.cursor/mcp.jsonto apply across all projects
After editing, restart Cursor or reload MCP servers (Cursor Settings > MCP > Reload).
Usage
Once configured, the AI assistant will automatically call leo_feedback_mcp to collect your feedback during conversations. A Web UI will open in your browser where you can:
- Review the AI's work summary (Markdown rendered)
- Provide text feedback with keyboard shortcuts
- Attach images via upload button, drag & drop, or paste
- View session history of previous AI interactions
- Configure auto-submit prompts and timeout settings
Environment Variables
| Variable | Description | Default |
|---|---|---|
MCP_DEBUG |
Enable debug logging | false |
MCP_WEB_HOST |
Web UI host | 127.0.0.1 |
MCP_WEB_PORT |
Web UI port | 8765 |
Credits
- Author: Leo Nguyen
Metadata
Release files for leo-feedback-mcp 1.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| leo_feedback_mcp-1.2.5.tar.gz | 12.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| leo_feedback_mcp-1.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.9 MB
Release files / leo_feedback_mcp-1.2.5.tar.gz
| Download URL | leo_feedback_mcp-1.2.5.tar.gz |
|---|---|
| Size | 12.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15b83f87c79dbeafa6a468d9c1d1fb75155bfe01660426bc01e053d12293606a
|
|
BLAKE2b-256 checksum How to use checksums |
9c0f23b86f0e617b8be3f15a282609128d3823d8dba08189a235daf9c67fff76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / leo_feedback_mcp-1.2.5-py3-none-any.whl
| Download URL | leo_feedback_mcp-1.2.5-py3-none-any.whl |
|---|---|
| Size | 12.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f88c49ff8aa06d1a3ed92b1b27816e24d85cbad11453ae15083ef1f7f7d40de
|
|
BLAKE2b-256 checksum How to use checksums |
c1a3535ed202b72e514388b55ef16a7ccf7119197d506ef3ecada7fda3b4e2a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|