Install
$ agentstack add mcp-iswitthere-my-last-feedback-python Open-source listing — not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
My Last Feedback MCP
A Model Context Protocol (MCP) server that enables a human-in-the-loop workflow for AI-assisted development tools such as Cursor, Cline, and Windsurf.
> Based on the original work by Fábio Ferreira (@fabiomlferreira). > This fork adds UI enhancements and stronger API contracts for AI agents.
✨ Features
| Feature | Description | |---|---| | Interactive feedback window | A native PySide6 desktop UI pops up whenever the AI agent requests feedback | | Markdown summary rendering | Agent summaries are rendered as rich Markdown in the feedback window | | Task title in window bar | The request_name parameter is displayed as both window title and a bold heading | | Image attachments | Attach images via file picker, Ctrl+V clipboard paste, or drag-and-drop — images are returned to the LLM as ImageContent | | Quick action buttons | One-click preset responses (Start task, Continue, Analyze, Fix, Explain) | | Custom prompt buttons | Load your own .prompt.md files from the mcp_prompts/ folder as buttons | | Test log section | A dedicated area to paste test output, appended to feedback automatically | | Feedback enhancement reminder | Optional checkbox to remind the agent to call interactive_feedback again | | Dark mode | Full dark theme with Windows dark title bar support | | Per-project settings | Preferences are saved per project directory via Qt QSettings |
💡 Why Use This?
By guiding the AI assistant to check in with the user instead of making speculative tool calls, this server can drastically reduce the number of API requests consumed. In practice it can consolidate up to 25 tool calls into a single feedback-aware request — saving cost and improving accuracy.
🛠️ Installation
Prerequisites
- Python 3.11 or newer
- uv package manager
# Windows
pip install uv
# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
Setup
# 1. Clone the repository
git clone https://github.com/isWittHere/my-last-feedback.git
cd my-last-feedback
# 2. Install dependencies
uv sync
⚙️ Configuration
Cursor
Add the following to your Cursor MCP configuration (replace the path with your actual clone location):
{
"mcpServers": {
"my-last-feedback": {
"command": "uv",
"args": [
"--directory",
"/path/to/my-last-feedback",
"run",
"server.py"
],
"timeout": 600,
"autoApprove": [
"interactive_feedback"
],
"env": {
"FEEDBACK_LANG": "en"
}
}
}
}
Cline / Windsurf
Use the same command / args pattern above in the respective tool's MCP settings.
🌐 Language Configuration
Set the FEEDBACK_LANG environment variable in the env block of your MCP config to control the UI language:
| Value | Language | |---|---| | en | English (default) | | zh | Chinese |
See [mcp.json.template](mcp.json.template) for a ready-to-use configuration template.
📝 Prompt Engineering
Add the following to your AI assistant's custom rules (e.g. as a .cursor/rules/ rule or a VS Code .instructions.md):
---
name: interactive-feedback
description: For ALL Requests, use the interactive-feedback tool to get user confirmation for important operations and finalizing requests.
applyTo: '**'
---
## MUST FOLLOW :
Whenever you're about to complete a user request, call the interactive_feedback instead of simply ending the process.
## Interactive Feedback MCP Tool Usage Instructions
The interactive_feedback tool must be used in any of the following situations:
- When user confirmation is needed for certain important operations, call the interactive_feedback:
- Testing: Before wanting to perform project testing or coding a test script;
- Terminal: Before wanting to use any terminal commands;
- Reporting: Before wanting to generate any reports, especially in markdown format;
- Asking: Before wanting to ask the user any questions;
- Whenever you're about to complete a user request, call the interactive_feedback instead of simply ending the process.
- Keep calling interactive_feedback until the user's feedback is empty, then end the request.
🔧 Tool Reference
interactive_feedback
Requests interactive feedback from the user.
| Parameter | Type | Required | Description | |---|---|---|---| | project_directory | string | ✅ | Full path to the project directory | | summary | string | ✅ | Summary in standard Markdown format — must use headings (##), lists (-), bold (**text**), and/or code blocks. Plain text is not acceptable. | | request_name | string | ✅ | A concise task title (5–10 words) shown in the window title bar. Must not be left empty. |
Example call
my-last-feedback
interactive_feedback
{
"project_directory": "/path/to/your/project",
"request_name": "Refactor authentication module",
"summary": "## Changes Made\n\n- Extracted token logic into `auth/token.py`\n- Added unit tests for edge cases\n\n## Next Steps\n\n- Review the updated tests"
}
Return value
The tool returns a list of MCP content blocks (TextContent and/or ImageContent). The text blocks reflect the configured language (FEEDBACK_LANG env var). If the user attached images, they are included as ImageContent items (base64-encoded) that vision-capable LLMs can read directly.
[
{
"type": "text",
"text": "## User Feedback\n[user feedback]\n\n## Reminder\nPlease use the interactive_feedback tool again after completing this operation."
},
{
"type": "image",
"data": "",
"mimeType": "image/png"
}
]
> Note: Image support requires a vision-capable LLM (e.g. GPT-4o, Claude 3.5+).
�️ Image Attachments
Users can attach images to their feedback, which are transmitted to the LLM as MCP ImageContent (base64-encoded). This allows vision-capable models to see screenshots, diagrams, or any other visual context.
How to attach images
| Method | How | |--------|-----| | File picker | Click the 📎 Attach Images button and browse for files | | Clipboard paste | Press Ctrl+V in the feedback text box to paste a screenshot | | Drag & drop | Drag image files from Explorer directly onto the feedback window |
Limits
| Limit | Value | |-------|-------| | Max images per feedback | 5 | | Max size per image | 5 MB | | Max total size | 20 MB | | Supported formats | PNG, JPG, JPEG, GIF, WEBP, BMP |
Clipboard-pasted images are saved to a temporary directory and automatically cleaned up after the feedback is sent.
�📁 Custom Prompt Buttons
Place .prompt.md files in the mcp_prompts/ directory. Each file must have YAML front matter with name and optionally description:
---
name: "Run Tests"
description: "Ask the agent to run the test suite"
---
Please run the full test suite and report any failures.
Clicking the button appends the prompt body to the feedback input and submits immediately.
🧑💻 Development
Run the server with the FastMCP development web UI:
uv run fastmcp dev server.py
📄 License
See [LICENSE](LICENSE) for details.
Acknowledgements
Original project by Fábio Ferreira. Check out dotcursorrules.com for more AI development resources.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: isWittHere
- Source: isWittHere/my-last-feedback-python
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.