mcp反馈节点
一个基于web的MCP(模型上下文协议)交互式反馈服务器,专为无头Linux服务器设计。将桌面GUI(PySide6)方法替换为基于浏览器的界面,该界面支持完整的CJK输入和双语UI(英语/中文)。
为什么是这个项目?
原版 交互式反馈mcp 使用PySide6(Qt)显示桌面反馈对话框。这在无头Linux服务器上不起作用,即使使用X11转发,Windows输入法(IME)也不能在转发的窗口中使用。
mcp反馈节点 通过将反馈UI作为网页提供来解决这个问题。本地计算机上的浏览器以本机方式处理所有内容,包括中文/日文/韩文输入。
建筑
┌───────────────────────────────────────────────────────────────┐
│ Linux Server (headless) │
│ │
│ ┌──────────────┐ HTTP (127.0.0.1) ┌──────────────────┐ │
│ │ server.py │ ───────────────────> │ web_feedback.py │ │
│ │ (MCP Server)│ │ (Web Server) │ │
│ │ stdio │ :8765` 在您的本地机器上。
**您必须始终保持此浏览器选项卡打开。** 该页面将通过长轮询自动接收新的反馈请求,无需手动刷新。当新请求到达时,选项卡标题将闪烁,浏览器通知将出现(如果允许)。
> **注:** web服务器无法自动打开本地计算机上的浏览器。您需要手动打开一次URL。之后,只需保持标签打开。
### 3.配置光标MCP
添加到光标MCP配置(`.cursor/mcp.json`).
**对于同一台机器上的Docker部署:**
{ "mcpServers": { "interactive-feedback": { "command": "docker", "args": ["exec", "-i", "mcp-web-feedback", "python", "server.py"], "timeout": 600, "autoApprove": ["interactive_feedback"] } } }
**对于通过SSH进行的远程访问(例如,从Windows计算机):**
{ "mcpServers": { "interactive-feedback": { "command": "ssh", "args": [ "your-server", "docker exec -i mcp-web-feedback python server.py" ], "timeout": 600, "autoApprove": ["interactive_feedback"] } } }
> **提示:** 这 `-i` 旗在 `docker exec -i` 需要保持stdin打开以进行MCP stdio传输。
### 4.特点
- 双语用户界面(英语/中文),具有自动语言检测和手动切换功能
- 当新请求到达时,选项卡标题会闪烁
- 浏览器通知支持(需要权限)
- **进入** 提交, **Shift+Enter** 用于换行
- “无反馈”按钮,用于快速空提交
- 提交后页面自动返回等待状态
## `web_feedback.py` 双模式
Server mode: start the persistent web server
python web_feedback.py --server
Client mode: send a request and wait for response
python web_feedback.py \ --project-directory /path/to/project \ --prompt "Please provide feedback" \ --output-file /tmp/result.json
在客户端模式下,如果没有检测到服务器,它会自动启动一个守护进程。
## API 参考
|方法|路径|描述|
|--------|------|-------------|
|得到| `/` |反馈页面(HTML)|
|得到| `/api/status` |健康检查|
|得到| `/api/poll` |新请求的长轮询(超时30秒)|
|职位| `/api/request` |创建新的反馈请求|
|职位| `/api/submit` |提交反馈|
|职位| `/api/get_response` |阻塞,直到提交反馈(300秒超时)|
## 文件结构
|文件|目的|
|------|---------|
| `server.py` |MCP服务器,通过stdio与Cursor通信|
| `web_feedback.py` |网络反馈服务器+客户端(双模)|
| `Dockerfile` |Docker镜像构建文件|
| `docker-compose.yml` |Docker编写配置|
## 故障排除
|问题|解决方案|
|-------|----------|
|浏览器无法加载页面|检查端口8765的防火墙规则|
|客户端连接超时|使用 `127.0.0.1` 而不是 `localhost` (IPv6问题)|
|Docker健康检查失败|运行 `docker logs mcp-web-feedback` |
|反馈页面无响应|刷新浏览器选项卡或重新启动服务|
## 学分
基于 [交互式反馈mcp](https://github.com/noopstudios/interactive-feedback-mcp) 作者:Fábio Ferreira(麻省理工学院许可证)。修改为使用基于web的UI而不是PySide6桌面GUI。