Skip to main content
Glama
Dwsy

mcp-feedback-enhanced

by Dwsy

MCP Feedback Enhanced

🌐 Language / 語言切換: English | 繁體中文 | 简体中文

Original Author: Fábio Ferreira | Original ProjectEnhanced Fork: Minidoracat | Enhanced ProjectUI Design Reference: sanshao85/mcp-feedback-collector Customized Version: Dwsy | This Repository

🎯 Core Concept

This is an MCP server that establishes feedback-oriented development workflows, providing Web UI and Desktop Application dual interface options, perfectly adapting to local, SSH Remote environments, and WSL (Windows Subsystem for Linux) environments. By guiding AI to confirm with users rather than making speculative operations, it can consolidate multiple tool calls into a single feedback-oriented request, dramatically reducing platform costs and improving development efficiency.

🌐 Dual Interface Architecture Advantages:

  • 🖥️ Desktop Application: Native cross-platform desktop experience, supporting Windows, macOS, Linux

  • 🌐 Web UI: No GUI dependencies required, suitable for remote and WSL environments

  • 🔧 Flexible Deployment: Choose the most suitable interface mode based on environment requirements

  • 📦 Unified Functionality: Both interfaces provide exactly the same functional experience

🖥️ Desktop Application: v2.5.0 introduces cross-platform desktop application support based on Tauri framework, supporting Windows, macOS, and Linux platforms with native desktop experience.

Supported Platforms: Cursor | Cline | Windsurf | Augment | Trae

🔄 Workflow

  1. AI Callmcp-feedback-enhanced tool

  2. Interface Launch → Auto-open desktop application or browser interface (based on configuration)

  3. Smart Interaction → Prompt selection, text input, image upload, auto-submit

  4. Real-time Feedback → WebSocket connection delivers information to AI instantly

  5. Session Tracking → Auto-record session history and statistics

  6. Process Continuation → AI adjusts behavior or ends task based on feedback

Related MCP server: mowan-mcp-feedback

🌟 Key Features

🖥️ Dual Interface Support

  • Desktop Application: Cross-platform native application based on Tauri, supporting Windows, macOS, Linux

  • Web UI Interface: Lightweight browser interface suitable for remote and WSL environments

  • Automatic Environment Detection: Intelligently recognizes SSH Remote, WSL and other special environments

  • Unified Feature Experience: Both interfaces provide exactly the same functionality

📝 Smart Workflow

  • Prompt Management: CRUD operations for common prompts, usage statistics, intelligent sorting

  • Auto-Timed Submit: 1-86400 second flexible timer, supports pause, resume, cancel with new pause/resume button controls

  • Auto Command Execution (v2.6.0): Automatically execute preset commands after creating new sessions or commits for improved development efficiency

  • Session Management & Tracking: Local file storage, privacy controls, history export (supports JSON, CSV, Markdown formats), real-time statistics, flexible timeout settings

  • Connection Monitoring: WebSocket status monitoring, auto-reconnection, quality indicators

  • AI Work Summary Markdown Display: Support for rich Markdown syntax rendering including headers, bold text, code blocks, lists, links and other formats for enhanced content readability

🎨 Modern Experience

  • Responsive Design: Adapts to different screen sizes, modular JavaScript architecture

  • Audio Notifications: Built-in multiple sound effects, custom audio upload support, volume control

  • System Notifications (v2.6.0): System-level real-time alerts for important events (like auto-commit, session timeout)

  • Smart Memory: Input box height memory, one-click copy, persistent settings

  • Multi-language Support: Traditional Chinese, English, Simplified Chinese, instant switching

🖼️ Images & Media

  • Full Format Support: PNG, JPG, JPEG, GIF, BMP, WebP

  • Convenient Upload: Drag & drop files, clipboard paste (Ctrl+V)

  • Unlimited Processing: Support for any size images, automatic intelligent processing

🌐 Interface Preview

Web UI Interface (v2.5.0 - Desktop Application Support)

Web UI Interface - Supports desktop application and Web interface, providing prompt management, auto-submit, session tracking and other smart features

Desktop Application Interface (v2.5.0 New Feature)

Desktop Application - Native cross-platform desktop application based on Tauri framework, supporting Windows, macOS, Linux with exactly the same functionality as Web UI

Shortcut Support

  • Ctrl+Enter(Windows/Linux)/ Cmd+Enter(macOS):Submit feedback (both main keyboard and numeric keypad supported)

  • Ctrl+V(Windows/Linux)/ Cmd+V(macOS):Direct paste clipboard images

  • Ctrl+I(Windows/Linux)/ Cmd+I(macOS):Quick focus input box (Thanks @penn201500)

🚀 Quick Start

1. Installation & Testing

# Install uv (if not already installed)
pip install uv

2. Configure MCP

Basic Configuration (suitable for most users):

{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": ["mcp-feedback-enhanced@latest"],
      "timeout": 600,
      "autoApprove": ["interactive_feedback"]
    }
  }
}

Advanced Configuration (requires custom environment):

{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": ["mcp-feedback-enhanced@latest"],
      "timeout": 600,
      "env": {
        "MCP_DEBUG": "false",
        "MCP_WEB_HOST": "127.0.0.1",
        "MCP_WEB_PORT": "8765",
        "MCP_LANGUAGE": "en"
      },
      "autoApprove": ["interactive_feedback"]
    }
  }
}

Desktop Application Configuration (v2.5.0 new feature - using native desktop application):

{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": ["mcp-feedback-enhanced@latest"],
      "timeout": 600,
      "env": {
        "MCP_DESKTOP_MODE": "true",
        "MCP_WEB_HOST": "127.0.0.1",
        "MCP_WEB_PORT": "8765",
        "MCP_DEBUG": "false"
      },
      "autoApprove": ["interactive_feedback"]
    }
  }
}

Configuration File Examples:

3. Prompt Engineering Setup

For optimal results, add the following rules to your AI assistant:

# MCP Interactive Feedback Rules

follow mcp-feedback-enhanced instructions

⚙️ Advanced Settings

Environment Variables

Variable

Purpose

Values

Default

MCP_DEBUG

Debug mode

true/false

false

MCP_WEB_HOST

Web UI host binding

IP address or hostname

127.0.0.1

MCP_WEB_PORT

Web UI port

1024-65535

8765

MCP_DESKTOP_MODE

Desktop application mode

true/false

false

MCP_LANGUAGE

Force UI language

zh-TW/zh-CN/en

Auto-detect

MCP_WEB_HOST Explanation:

  • 127.0.0.1 (default): Local access only, higher security

  • 0.0.0.0: Allow remote access, suitable for SSH remote development environments

MCP_LANGUAGE Explanation:

  • Used to force the interface language, overriding automatic system detection

  • Supported language codes:

    • zh-TW: Traditional Chinese

    • zh-CN: Simplified Chinese

    • en: English

  • Language detection priority:

    1. User-saved language settings in the interface (highest priority)

    2. MCP_LANGUAGE environment variable

    3. System environment variables (LANG, LC_ALL, etc.)

    4. System default language

    5. Fallback to default language (Traditional Chinese)

Testing Options

# Version check
uvx mcp-feedback-enhanced@latest version       # Check version

# Interface testing
uvx mcp-feedback-enhanced@latest test --web    # Test Web UI (auto continuous running)
uvx mcp-feedback-enhanced@latest test --desktop # Test desktop application (v2.5.0 new feature)

# Debug mode
MCP_DEBUG=true uvx mcp-feedback-enhanced@latest test

# Specify language for testing
MCP_LANGUAGE=en uvx mcp-feedback-enhanced@latest test --web    # Force English interface
MCP_LANGUAGE=zh-TW uvx mcp-feedback-enhanced@latest test --web  # Force Traditional Chinese
MCP_LANGUAGE=zh-CN uvx mcp-feedback-enhanced@latest test --web  # Force Simplified Chinese

Developer Installation

git clone https://github.com/Minidoracat/mcp-feedback-enhanced.git
cd mcp-feedback-enhanced
uv sync

Local Testing Methods

# Functional testing
make test-func                                           # Standard functional testing
make test-web                                            # Web UI testing (continuous running)
make test-desktop-func                                   # Desktop application functional testing

# Or use direct commands
uv run python -m mcp_feedback_enhanced test              # Standard functional testing
uvx --no-cache --with-editable . mcp-feedback-enhanced test --web   # Web UI testing (continuous running)
uvx --no-cache --with-editable . mcp-feedback-enhanced test --desktop # Desktop application testing

# Desktop application build (v2.5.0 new feature)
make build-desktop                                       # Build desktop application (debug mode)
make build-desktop-release                               # Build desktop application (release mode)
make test-desktop                                        # Test desktop application
make clean-desktop                                       # Clean desktop build artifacts

# Unit testing
make test                                                # Run all unit tests
make test-fast                                          # Fast testing (skip slow tests)
make test-cov                                           # Test and generate coverage report

# Code quality checks
make check                                              # Complete code quality check
make quick-check                                        # Quick check and auto-fix

Testing Descriptions

  • Functional Testing: Test complete MCP tool functionality workflow

  • Unit Testing: Test individual module functionality

  • Coverage Testing: Generate HTML coverage report to htmlcov/ directory

  • Quality Checks: Include linting, formatting, type checking

🆕 Version History

📋 Complete Version History: RELEASE_NOTES/CHANGELOG.en.md

Latest Version Highlights (v2.6.0)

  • 🚀 Auto Command Execution: Automatically execute preset commands after creating new sessions or commits, improving workflow efficiency

  • 📊 Session Export Feature: Support exporting session records to multiple formats for easy sharing and archiving

  • ⏸️ Auto-commit Control: Added pause and resume buttons for better control over auto-commit timing

  • 🔔 System Notifications: System-level notifications for important events with real-time alerts

  • ⏱️ Session Timeout Optimization: Redesigned session management with more flexible configuration options

  • 🌏 I18n Enhancement: Refactored internationalization architecture with full multilingual support for notifications

  • 🎨 UI Simplification: Significantly simplified user interface for improved user experience

🐛 Common Issues

🌐 SSH Remote Environment Issues

Q: Browser cannot launch or access in SSH Remote environment A: Two solutions available:

Solution 1: Environment Variable Setting (v2.5.5 Recommended) Set "MCP_WEB_HOST": "0.0.0.0" in MCP configuration to allow remote access:

{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": ["mcp-feedback-enhanced@latest"],
      "timeout": 600,
      "env": {
        "MCP_WEB_HOST": "0.0.0.0",
        "MCP_WEB_PORT": "8765"
      },
      "autoApprove": ["interactive_feedback"]
    }
  }
}

Then open in local browser: http://[remote-host-IP]:8765

Solution 2: SSH Port Forwarding (Traditional Method)

  1. Use default configuration (MCP_WEB_HOST: 127.0.0.1)

  2. Set up SSH port forwarding:

    • VS Code Remote SSH: Press Ctrl+Shift+P → "Forward a Port" → Enter 8765

    • Cursor SSH Remote: Manually add port forwarding rule (port 8765)

  3. Open in local browser: http://localhost:8765

For detailed solutions, refer to: SSH Remote Environment Usage Guide

Q: Why am I not receiving new MCP feedback? A: Likely a WebSocket connection issue. Solution: Directly refresh the browser page.

Q: Why isn't MCP being called? A: Please confirm MCP tool status shows green light. Solution: Repeatedly toggle MCP tool on/off, wait a few seconds for system reconnection.

Q: Augment cannot start MCP A: Solution: Completely close and restart VS Code or Cursor, reopen the project.

🔧 General Issues

Q: How to use desktop application? A: v2.5.0 introduces cross-platform desktop application support. Set "MCP_DESKTOP_MODE": "true" in MCP configuration to enable:

{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": ["mcp-feedback-enhanced@latest"],
      "timeout": 600,
      "env": {
        "MCP_DESKTOP_MODE": "true",
        "MCP_WEB_PORT": "8765"
      },
      "autoApprove": ["interactive_feedback"]
    }
  }
}

Configuration File Example: examples/mcp-config-desktop.json

Q: How to use legacy PyQt6 GUI interface? A: v2.4.0 completely removed PyQt6 GUI dependencies. To use legacy GUI, specify v2.3.0 or earlier: uvx mcp-feedback-enhanced@2.3.0 Note: Legacy versions don't include new features (prompt management, auto-submit, session management, desktop application, etc.).

Q: "Unexpected token 'D'" error appears A: Debug output interference. Set MCP_DEBUG=false or remove the environment variable.

Q: Chinese character garbled text A: Fixed in v2.0.3. Update to latest version: uvx mcp-feedback-enhanced@latest

Q: Window disappears or positioning errors in multi-screen environment A: Fixed in v2.1.1. Go to "⚙️ Settings" tab, check "Always show window at primary screen center" to resolve. Especially suitable for T-shaped screen arrangements and other complex multi-screen configurations.

Q: Image upload failure A: Check file format (PNG/JPG/JPEG/GIF/BMP/WebP). System supports any size image files.

Q: Web UI cannot start A: Check firewall settings or try using different ports.

Q: UV Cache occupies too much disk space A: Due to frequent use of uvx commands, cache may accumulate to tens of GB. Regular cleanup recommended:

# View cache size and detailed information
python scripts/cleanup_cache.py --size

# Preview cleanup content (no actual cleanup)
python scripts/cleanup_cache.py --dry-run

# Execute standard cleanup
python scripts/cleanup_cache.py --clean

# Force cleanup (attempts to close related programs, solving Windows file occupation issues)
python scripts/cleanup_cache.py --force

# Or directly use uv command
uv cache clean

For detailed instructions, refer to: Cache Management Guide

Q: AI models cannot parse images A: Various AI models (including Gemini Pro 2.5, Claude, etc.) may have instability in image parsing, sometimes correctly recognizing and sometimes unable to parse uploaded image content. This is a known limitation of AI visual understanding technology. Recommendations:

  1. Ensure good image quality (high contrast, clear text)

  2. Try uploading multiple times, retries usually succeed

  3. If parsing continues to fail, try adjusting image size or format

🙏 Acknowledgments

🌟 Support Original Author

Fábio Ferreira - X @fabiomlferreira Original Project: noopstudios/interactive-feedback-mcp

If you find it useful, please:

Design Inspiration

sanshao85 - mcp-feedback-collector

Contributors

penn201500 - GitHub @penn201500

  • 🎯 Auto-focus input box feature (PR #39)

leo108 - GitHub @leo108

  • 🌐 SSH Remote Development Support (MCP_WEB_HOST environment variable) (PR #113)

Alsan - GitHub @Alsan

  • 🍎 macOS PyO3 Compilation Configuration Support (PR #93)

fireinice - GitHub @fireinice

  • 📝 Tool Documentation Optimization (LLM instructions moved to docstring) (PR #105)

Community Support

📄 License

MIT License - See LICENSE file for details

📈 Star History

Star History Chart


🌟 Welcome to Star and share with more developers!

Available Tools

2 tools
get_system_infoA

獲取系統環境資訊

Returns: str: JSON 格式的系統資訊

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It states the return type (JSON string), which is useful, but it does not disclose whether the operation is read-only, whether any permissions are required, or what the response contains beyond a generic 'system information'. For a simple getter, this is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured: a one-line purpose followed by a clear 'Returns:' specification. There is no redundancy or unnecessary prose, and the information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter system information tool, the description is complete. It clearly states the output format (JSON), which is especially helpful given that an output schema exists (though not shown). The tool's simplicity and the presence of an output schema mean the description does not need to enumerate return fields or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description need not explain parameter semantics. The input schema is empty, and per guidelines, a baseline of 4 applies. The description correctly avoids adding irrelevant parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: '獲取系統環境資訊' (Get system environment information). It uses a specific verb (get) and resource (system info), and it is clearly distinct from the sibling tool 'interactive_feedback', which is unrelated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any use cases, prerequisites, or exclusions. Since a sibling tool exists but is not referenced, the agent has no comparative context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interactive_feedbackA

Interactive feedback collection tool for LLM agents.

USAGE RULES:

  1. During any process, task, or conversation, whether asking, replying, or completing phased tasks, you must call this tool to ask for feedback.

  2. Unless receiving termination instructions, all steps must repeatedly call this tool.

  3. Whenever user feedback is received, if the feedback content is not empty, you must call this tool again and adjust behavior based on the feedback content.

  4. Only when the user explicitly indicates "end" or "no more interaction needed" can you stop calling this tool, and the process is considered complete.

  5. You should summarize what have done, and provide project directory through args to let user know what you have done to provide feedback for next step.

CONVERSATION_ID USAGE:

  • IMPORTANT: Always provide a consistent conversation_id for the same chat window or conversation thread

  • If your IDE or client provides a conversation/thread/chat ID, use it as the conversation_id

  • Using the same conversation_id will replace the previous feedback session for that conversation

  • This allows multiple AI conversations to have independent feedback sessions without interfering with each other

  • Examples:

    • Cursor: Use the conversation UUID from the chat window

    • VS Code: Use the conversation/thread identifier

    • If no ID is available: Generate a UUID once per conversation and reuse it

  • If conversation_id is not provided, a new one will be auto-generated (may cause session conflicts in multi-conversation scenarios)

QUICK OPTIONS FEATURE: You can provide quick selection options in the summary using XML format. Users can click checkboxes to select options.

Basic Format:

Format with Attributes (optional title, key, description):

Multiple option groups are supported:

User selections will be returned in the feedback with group numbers like "[1] A. First option".

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryNoAI 工作完成的摘要說明我已完成了您請求的任務。
timeoutNo等待用戶回饋的超時時間(秒)
conversation_idNo會話唯一標識符,用於區分不同的對話窗口。為同一個對話使用一致的 ID 以保持會話連續性。如果未提供,將自動生成新 ID。
project_directoryNo專案目錄路徑.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully bears the transparency burden. It discloses that reusing a conversation_id replaces prior sessions, auto-generated IDs may conflict, and user selections are returned with group numbers. It also details the quick-options feature and timeout behavior implied by the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-organized into clear sections (USAGE RULES, CONVERSATION_ID USAGE, QUICK OPTIONS FEATURE). Every paragraph adds necessary operational detail, though the repeated emphasis on calling the tool could be condensed. Minor redundancy prevents a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's interactive nature and the presence of an output schema, the description covers all critical aspects: when to call, how to manage conversation IDs, how to present options, and what happens to selections. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters, but the description adds substantial meaning beyond field names. It explains conversation_id handling with examples (Cursor, VS Code), how summary can embed clickable options, and the role of project_directory in user feedback. This enriches the schema's terse descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Interactive feedback collection tool for LLM agents,' clearly specifying the verb (collect) and resource (feedback). The usage rules elaborate on when to invoke it, distinguishing it from the sibling tool get_system_info which is unrelated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The USAGE RULES section provides explicit when-to-use guidance: call during any process, repeatedly unless termination, and stop only on explicit user indication. It also explains how to handle feedback and summarize actions, leaving no ambiguity about alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation5/5

The two tools are entirely unrelated: interactive_feedback handles user feedback collection while get_system_info retrieves system environment details. No overlap or confusion is possible.

Naming Consistency2/5

The naming patterns differ significantly: 'interactive_feedback' is a compound noun, while 'get_system_info' follows a verb_noun convention. The mix of styles is inconsistent and does not suggest a unified naming scheme.

Tool Count3/5

With only two tools, the server feels thin and under-scoped for a 'feedback-enhanced' purpose. While not as extreme as a single tool, the count is borderline and does not convincingly cover a full feedback workflow.

Completeness2/5

The server name implies a focus on feedback, yet only one tool is directly related, and get_system_info is a disconnected addition. There are no tools for managing or retrieving past feedback sessions, making the surface significantly incomplete.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    An interactive feedback MCP server with a web UI, enabling AI-driven development workflows where AI can prompt users for feedback before taking actions, supporting platforms like Cursor, Cline, and Windsurf.
    2
  • F
    license
    A
    quality
    A
    maintenance
    MCP server that establishes feedback-oriented development workflows with dual Web UI and desktop application interfaces, enabling AI to confirm with users via prompts and real-time feedback to reduce speculative operations and improve efficiency.
    2
  • F
    license
    A
    quality
    C
    maintenance
    A feedback-oriented MCP server with a Web UI for AI development workflows, enabling interactive confirmations and reducing speculative tool calls.
    2
    3

Latest Blog Posts

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/Dwsy/mcp-feedback-enhanced'

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