← MCP servers · minidoracat

Interactive Feedback

SAFEgrade B · trust 84/100

Enhanced MCP server for interactive user feedback and command execution in AI-assisted development, featuring dual interface support (Web UI and Desktop Application) with intelligent environment detection and cross-platform compatibility.

Overview

From the repository's own README, as read at the audited commit.

# MCP Feedback Enhanced**🌐 Language / 語言切換:** **English** | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md)**Original Author:** [Fábio Ferreira](https://x.com/fabiomlferreira) | [Original Project](https://github.com/noopstudios/interactive-feedback-mcp) ⭐**Enhanced Fork:** [Minidoracat](https://github.com/Minidoracat)**UI Design Reference:** [sanshao85/mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector)> ## 📢 Maintenance Status (2026-08)>> The project is maintained again. **Please upgrade to v2.6.1** — it fixes a command execution vulnerability:>> ```bash> uvx mcp-feedback-enhanced@latest> ```>> **What changed in v2.6.1:**> - 🔒 **Command execution removed** — fixes [#219](https://github.com/Minidoracat/mcp-feedback-enhanced/issues/219) (unauthenticated WebSocket could execute arbitrary programs). The old blocklist only caught shell metacharacters, but since execution used `shell=False` metacharacters were never the risk — `cat`, `curl`, `wget`, `python` passed straight through, and auto-command was **enabled by default**. The feature is gone for good. See [SECURITY.md](SECURITY.md).> - 🔒 **Cross-Site WebSocket Hijacking fixed** (reported privately as `GHSA-cmr5-gpm3-79vf`, `GHSA-2wx7-r4rh-f663`): browsers are not restricted by the same-origin policy when opening a WebSocket, so a malicious page could make your browser connect to the local `/ws`. `Origin` is now validated before `accept()`, and cross-origin attempts are rejected with 403.> - 🐛 Fixed the Starlette breaking change that made the Web UI return 500 ([#213](https://github.com/Minidoracat/mcp-feedback-enhanced/issues/213), [#217](https://github.com/Minidoracat/mcp-feedback-enhanced/issues/217), [#221](https://github.com/Minidoracat/mcp-feedback-enhanced/issues/221), [#228](https://github.com/Minidoracat/mcp-feedback-enhanced/issues/228)).> - 🐛 Fixed image serialization ([#154](https://github.com/Minidoracat/mcp-feedback-enhanced/issues/154) and related) by switching to standard `m

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add mcp-feedback-enhanced-desktop -- uvx mcp-feedback-enhanced-desktop
claude-desktop
{
  "mcpServers": {
    "mcp-feedback-enhanced-desktop": {
      "command": "uvx",
      "args": [
        "mcp-feedback-enhanced-desktop"
      ]
    }
  }
}

Exposed tools (1) 1 read · 0 write · 0 destructive

ToolRiskDescription
get_system_inforead

Details

Source
minidoracat/mcp-feedback-enhanced
PyPI
mcp-feedback-enhanced-desktop
License
NOASSERTION
Stars
3,768 · pushed 7d ago

Trust audit

Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (5 observation(s))
Shell
declared (1 observation(s))
Dependencies
pinned
Secrets in source
none-found

Findings (25)

MEDIUMInventory / provenance · inv.binary · CWE-1104
src-tauri/icons/icon.icns
icon.icns
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.hidden_file · CWE-1104
.bumpversion.cfg
.bumpversion.cfg
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-config.yaml
.pre-commit-config.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
docs/architecture/component-details.md:438
allow_origins=["http://127.0.0.1:*", "http://localhost:*"],
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
src/mcp_feedback_enhanced/web/static/index.html:91
const backendUrl = 'http://127.0.0.1:8765';
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_desktop_fallback.py:186
await app.launch_tauri_app("http://127.0.0.1:8765")
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_desktop_fallback.py:215
await app.launch_tauri_app("http://127.0.0.1:8765")
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/unit/test_desktop_fallback.py:233
await app.launch_tauri_app("http://127.0.0.1:8765")
LOWObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
src/mcp_feedback_enhanced/web/templates/feedback.html:10
<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD/
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/mcp_feedback_enhanced/server.py:394
image_bytes = base64.b64decode(img["data"], validate=True)
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
src/mcp_feedback_enhanced/web/models/feedback_session.py:644
image_bytes = base64.b64decode(img["data"])
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
tests/unit/test_image_content.py:23
PNG_BYTES = base64.b64decode(
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
tests/unit/test_image_content.py:62
assert base64.b64decode(result[0].data) == PNG_BYTES
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
tests/unit/test_image_content.py:68
assert base64.b64decode(result[0].data) == PNG_BYTES
LOWPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
.github/workflows/build-desktop.yml:135
sudo apt-get update
Why it matters. asks for elevated privileges
LOWPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
.github/workflows/build-desktop.yml:137
sudo apt-get install -y \
Why it matters. asks for elevated privileges
LOWPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
.github/workflows/build-desktop.yml:144
if ! sudo apt-get install -y libayatana-appindicator3-dev; then
Why it matters. asks for elevated privileges
LOWPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
.github/workflows/build-desktop.yml:146
sudo apt-get install -y libappindicator3-dev
Why it matters. asks for elevated privileges
LOWSupply chain · prompt.pipe_to_shell · CWE-829, CWE-1357
docs/DESKTOP_BUILD.md:17
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:212
- `0.0.0.0`: Binds all interfaces. ⚠️ **Not recommended**: the Web UI and `/ws` endpoint have **no authentication**, so anyone who can reach the port can read session content (including project paths 
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:311
> the Web UI and `/ws` endpoint have no authentication, so binding publicly lets anyone on the network read your session and submit feedback.
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOInventory / provenance · inv.oversize · CWE-1104
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-linux
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-linux
Why it matters. 5224304 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-arm64
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-arm64
Why it matters. 4444240 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-intel
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-intel
Why it matters. 4811992 bytes not read
INFOInventory / provenance · inv.oversize · CWE-1104
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop.exe
src/mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop.exe
Why it matters. 4574208 bytes not read

Gates applied: no_behavioural_pass.

Audited 2026-09-14 · audit v0.4.0 · source sha e990a29086d8 · full audit: observations/trust-audit/mcp-server/minidoracat__interactive-feedback-4.json · Report an issue or request a re-scan

Audit history

DateSourceVerdictGradeScoreChange
2026-09-14e990a29086d8SAFEB84first audit

Also audited

Servers with a similar trust profile.

Questions

What is the Interactive Feedback MCP server?

Enhanced MCP server for interactive user feedback and command execution in AI-assisted development, featuring dual interface support (Web UI and Desktop Application) with intelligent environment detection and cross-platform compatibility.

What tools does Interactive Feedback expose?

1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Interactive Feedback safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (84/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Interactive Feedback need?

No credential environment variables were found in its source, so it appears to need none.

How current is this page?

The grade is for one exact copy of the source (e990a29086d8), read on 2026-09-14. The repository is watched and re-audited when it changes.

Provenance: OBSERVED · read 2026-09-14 · job trust-audit-2026-09-14