Skip to main content
Glama
orime

mcp-feedback-enhanced-community-fix

by orime

MCP Feedback Enhanced Community Fix

来源与致谢

这个仓库基于上面的项目链路继续整理和维护,主要目标是保留原有使用方式,同时修复我自己实际使用过程中遇到的几个关键问题。

这是我基于 Minidoracat/mcp-feedback-enhanced 整理出来的个人维护修复版。

官方增强版已经长期没有继续处理一些实际可用性问题,而我本地又一直在用,所以把自己修过、验证过的一些 bug 收敛成了这个 GitHub 仓库,方便同样被这些问题卡住的人直接拿去用。

这个仓库当前只提供 GitHub 源码使用方式,不发布 npm 包,也不额外改命令名。目标很直接:保持原有接入方式基本不变,优先解决可用性问题。

Related MCP server: mcp-feedback-web

这个仓库修了什么

1. 修复图片附件返回的序列化兼容问题

上游部分实现仍依赖 FastMCP Image 类型,某些环境下会导致图片附件返回报错或序列化失败。

这个仓库把图片返回统一切到标准 mcp.types.ImageContent,尽量减少不同 MCP 运行时组合下的兼容性问题。

2. 修复 Dashboard / Web 面板打不开的问题

随着 Starlette / FastAPI 相关依赖更新,TemplateResponse 的调用顺序已经变化。旧写法会导致面板打开时报 500,页面直接起不来。

这个仓库已经兼容新的 TemplateResponse(request, name, context) 调用方式。

3. 默认超时时间改为一周

我把默认等待时间从 600 秒调整为 604800 秒,也就是一周。

这个改动参考并吸收了 fix-MCP-Feedback-Enhanced 的思路,适合需要长时间挂着等待下一轮反馈的场景。

和上游的差异

相对 Minidoracat/mcp-feedback-enhanced,这个仓库目前重点维护的是下面这些实际问题:

  • 默认超时时间从 600 秒调整为 604800

  • 图片附件返回改为 ImageContent,降低附件序列化报错概率

  • 修复 Starlette 兼容问题,避免面板页面 500

如果你只是想继续使用原有功能,但正好被上面这几个问题卡住,这个仓库更适合直接拿来本地跑。

适合谁

  • 你已经在用 mcp-feedback-enhanced

  • 你不想重新适配一套新的 MCP

  • 你遇到了面板打不开、图片传不上去、等待时间太短这些问题

  • 你接受通过本地源码方式接入 Cursor

使用方式

1. 克隆仓库

git clone https://github.com/orime/mcp-feedback-enhanced-community-fix.git
cd mcp-feedback-enhanced-community-fix

2. 安装依赖

uv sync

3. 在 Cursor 里配置 MCP

把下面配置加入 Cursor 的 MCP 配置中,把路径改成你自己的本地目录:

{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/mcp-feedback-enhanced-community-fix",
        "mcp-feedback-enhanced"
      ],
      "timeout": 600000,
      "env": {
        "MCP_DESKTOP_MODE": "false",
        "MCP_WEB_PORT": "8765",
        "MCP_LANGUAGE": "zh-CN",
        "MCP_DEBUG": "false"
      },
      "autoApprove": [
        "interactive_feedback"
      ]
    }
  }
}

如果你更习惯显式跑模块,也可以改成:

{
  "mcpServers": {
    "mcp-feedback-enhanced": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/mcp-feedback-enhanced-community-fix",
        "python",
        "-m",
        "mcp_feedback_enhanced"
      ],
      "timeout": 600000,
      "env": {
        "MCP_DESKTOP_MODE": "false",
        "MCP_WEB_PORT": "8765",
        "MCP_LANGUAGE": "zh-CN",
        "MCP_DEBUG": "false"
      },
      "autoApprove": [
        "interactive_feedback"
      ]
    }
  }
}

常用环境变量

变量

说明

默认值

MCP_DESKTOP_MODE

是否启用桌面模式

false

MCP_WEB_HOST

Web UI 监听地址

127.0.0.1

MCP_WEB_PORT

Web UI 端口

8765

MCP_LANGUAGE

界面语言

自动检测

MCP_DEBUG

是否输出调试日志

false

本地测试

uv run mcp-feedback-enhanced version
uv run mcp-feedback-enhanced test --web

说明

  • 这个仓库当前优先解决我自己实际遇到的问题,不承诺跟上游保持完全同步

  • 如果上游后续恢复维护并合入这些修复,我也建议优先回到上游

  • 如果你只是需要一个能稳定跑的本地版本,这个仓库就是为这个目的准备的

致谢

感谢下面这些项目和作者:

  • noopstudios/interactive-feedback-mcp

  • Minidoracat/mcp-feedback-enhanced

  • Huo-zai-feng-lang-li/fix-MCP-Feedback-Enhanced

本仓库基于上游工作继续修补和整理,不是从零重写。

License

沿用上游仓库许可证,见 LICENSE

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryNoAI 工作完成的摘要說明我已完成了您請求的任務。
timeoutNo等待用戶回饋的超時時間(秒)
project_directoryNo專案目錄路徑.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full burden. It discloses the iterative feedback loop behavior and mentions timeout, but does not explain what happens on timeout expiry, if the tool is blocking, or any side effects. It adequately sets expectations for the core interaction pattern but lacks some behavioral details.

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

Conciseness3/5

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

The description is structured with clear bullet points but is somewhat verbose, repeating 'you must call this tool' multiple times. It could be more concise while retaining the same information.

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

Completeness3/5

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

Given the tool's complexity (interactive loop) and the existence of an output schema, the description covers usage but does not mention what the tool returns or error handling. The output schema likely covers return structure, but the description should still reference it for completeness.

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?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining how the parameters should be used in context: summary should be a work summary, project_directory should be provided for user reference, and timeout is for waiting. This goes beyond the schema 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 explicitly states the tool is for interactive feedback collection. The usage rules clarify its purpose as a loop mechanism for iterative feedback, distinguishing it from the sibling tool get_system_info which is for system info retrieval.

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 description provides clear, prescriptive rules for when to call the tool (during any process, task, or conversation) and when to stop (explicit termination). It also specifies when to call again upon receiving non-empty feedback, leaving no ambiguity.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv2.6.0
    • First observedget_system_info
    • First observedinteractive_feedback

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation5/5

The two tools serve entirely distinct purposes: one retrieves system information, the other collects feedback. There is no overlap or ambiguity.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern using snake_case ('get_system_info' and 'interactive_feedback'), making them predictable.

Tool Count3/5

With only two tools, the server feels minimal. However, for a focused feedback-collection purpose with a system info utility, the count is acceptable, though many servers would offer more.

Completeness4/5

The server covers its stated domain (feedback collection and system info) adequately. The feedback tool is designed for repeated use mid-task, so no additional CRUD tools are needed. Minor gap: no way to retrieve past feedback, but rules imply continuous interaction.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides a web-based interactive feedback server for MCP, replacing desktop GUI with a browser interface supporting full CJK input and bilingual UI.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for Open Feedback, enabling AI assistants to submit, list, get, update status of, and analyze product feedback via a local HTTP API and JSONL storage.
    346 npm
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that exposes App Store Connect TestFlight beta feedback including screenshot submissions, crash submissions, crash logs, and screenshot downloads as tools for MCP-capable clients.
    2
    BSD 3-Clause