feedback-evil 2.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. feedback_evil-2.6.0.dist-info/METADATA +456 -0
  2. feedback_evil-2.6.0.dist-info/RECORD +86 -0
  3. feedback_evil-2.6.0.dist-info/WHEEL +4 -0
  4. feedback_evil-2.6.0.dist-info/entry_points.txt +4 -0
  5. feedback_evil-2.6.0.dist-info/licenses/LICENSE +24 -0
  6. mcp_feedback_enhanced/__init__.py +52 -0
  7. mcp_feedback_enhanced/__main__.py +419 -0
  8. mcp_feedback_enhanced/debug.py +79 -0
  9. mcp_feedback_enhanced/desktop_app/__init__.py +30 -0
  10. mcp_feedback_enhanced/desktop_app/desktop_app.py +336 -0
  11. mcp_feedback_enhanced/desktop_release/__init__.py +1 -0
  12. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-linux +0 -0
  13. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-arm64 +0 -0
  14. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-intel +0 -0
  15. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop.exe +0 -0
  16. mcp_feedback_enhanced/i18n.py +379 -0
  17. mcp_feedback_enhanced/py.typed +0 -0
  18. mcp_feedback_enhanced/server.py +676 -0
  19. mcp_feedback_enhanced/utils/__init__.py +28 -0
  20. mcp_feedback_enhanced/utils/error_handler.py +449 -0
  21. mcp_feedback_enhanced/utils/memory_monitor.py +519 -0
  22. mcp_feedback_enhanced/utils/resource_manager.py +801 -0
  23. mcp_feedback_enhanced/web/__init__.py +26 -0
  24. mcp_feedback_enhanced/web/constants/__init__.py +8 -0
  25. mcp_feedback_enhanced/web/constants/message_codes.py +173 -0
  26. mcp_feedback_enhanced/web/locales/en/translation.json +644 -0
  27. mcp_feedback_enhanced/web/locales/zh-CN/translation.json +630 -0
  28. mcp_feedback_enhanced/web/locales/zh-TW/translation.json +649 -0
  29. mcp_feedback_enhanced/web/main.py +1236 -0
  30. mcp_feedback_enhanced/web/models/__init__.py +13 -0
  31. mcp_feedback_enhanced/web/models/feedback_result.py +16 -0
  32. mcp_feedback_enhanced/web/models/feedback_session.py +1108 -0
  33. mcp_feedback_enhanced/web/routes/__init__.py +12 -0
  34. mcp_feedback_enhanced/web/routes/main_routes.py +698 -0
  35. mcp_feedback_enhanced/web/static/css/audio-management.css +545 -0
  36. mcp_feedback_enhanced/web/static/css/notification-settings.css +152 -0
  37. mcp_feedback_enhanced/web/static/css/prompt-management.css +566 -0
  38. mcp_feedback_enhanced/web/static/css/session-management.css +1428 -0
  39. mcp_feedback_enhanced/web/static/css/styles.css +2203 -0
  40. mcp_feedback_enhanced/web/static/favicon.ico +0 -0
  41. mcp_feedback_enhanced/web/static/icon-192.png +0 -0
  42. mcp_feedback_enhanced/web/static/icon.svg +16 -0
  43. mcp_feedback_enhanced/web/static/index.html +158 -0
  44. mcp_feedback_enhanced/web/static/js/app.js +2213 -0
  45. mcp_feedback_enhanced/web/static/js/i18n.js +376 -0
  46. mcp_feedback_enhanced/web/static/js/modules/audio/audio-manager.js +610 -0
  47. mcp_feedback_enhanced/web/static/js/modules/audio/audio-settings-ui.js +732 -0
  48. mcp_feedback_enhanced/web/static/js/modules/connection-monitor.js +435 -0
  49. mcp_feedback_enhanced/web/static/js/modules/constants/message-codes.js +168 -0
  50. mcp_feedback_enhanced/web/static/js/modules/file-upload-manager.js +555 -0
  51. mcp_feedback_enhanced/web/static/js/modules/image-handler.js +199 -0
  52. mcp_feedback_enhanced/web/static/js/modules/logger.js +404 -0
  53. mcp_feedback_enhanced/web/static/js/modules/notification/notification-manager.js +360 -0
  54. mcp_feedback_enhanced/web/static/js/modules/notification/notification-settings.js +344 -0
  55. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-input-buttons.js +427 -0
  56. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-manager.js +414 -0
  57. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-modal.js +458 -0
  58. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-settings-ui.js +524 -0
  59. mcp_feedback_enhanced/web/static/js/modules/session/session-data-manager.js +1040 -0
  60. mcp_feedback_enhanced/web/static/js/modules/session/session-details-modal.js +594 -0
  61. mcp_feedback_enhanced/web/static/js/modules/session/session-ui-renderer.js +817 -0
  62. mcp_feedback_enhanced/web/static/js/modules/session-manager.js +1059 -0
  63. mcp_feedback_enhanced/web/static/js/modules/settings-manager.js +1002 -0
  64. mcp_feedback_enhanced/web/static/js/modules/tab-manager.js +235 -0
  65. mcp_feedback_enhanced/web/static/js/modules/textarea-height-manager.js +267 -0
  66. mcp_feedback_enhanced/web/static/js/modules/ui-manager.js +568 -0
  67. mcp_feedback_enhanced/web/static/js/modules/utils/dom-utils.js +392 -0
  68. mcp_feedback_enhanced/web/static/js/modules/utils/status-utils.js +403 -0
  69. mcp_feedback_enhanced/web/static/js/modules/utils/time-utils.js +440 -0
  70. mcp_feedback_enhanced/web/static/js/modules/utils.js +472 -0
  71. mcp_feedback_enhanced/web/static/js/modules/websocket-manager.js +625 -0
  72. mcp_feedback_enhanced/web/static/js/vendor/marked.min.js +6 -0
  73. mcp_feedback_enhanced/web/static/js/vendor/purify.min.js +3 -0
  74. mcp_feedback_enhanced/web/templates/components/image-upload.html +43 -0
  75. mcp_feedback_enhanced/web/templates/components/settings-card.html +58 -0
  76. mcp_feedback_enhanced/web/templates/components/status-indicator.html +31 -0
  77. mcp_feedback_enhanced/web/templates/components/toggle-switch.html +19 -0
  78. mcp_feedback_enhanced/web/templates/feedback.html +1360 -0
  79. mcp_feedback_enhanced/web/templates/index.html +330 -0
  80. mcp_feedback_enhanced/web/utils/__init__.py +13 -0
  81. mcp_feedback_enhanced/web/utils/browser.py +152 -0
  82. mcp_feedback_enhanced/web/utils/compression_config.py +190 -0
  83. mcp_feedback_enhanced/web/utils/compression_monitor.py +314 -0
  84. mcp_feedback_enhanced/web/utils/network.py +66 -0
  85. mcp_feedback_enhanced/web/utils/port_manager.py +321 -0
  86. mcp_feedback_enhanced/web/utils/session_cleanup_manager.py +525 -0
@@ -0,0 +1,456 @@
1
+ Metadata-Version: 2.4
2
+ Name: feedback-evil
3
+ Version: 2.6.0
4
+ Summary: 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.
5
+ Project-URL: Homepage, https://github.com/jianzhihuang/feedback-evil
6
+ Project-URL: Repository, https://github.com/jianzhihuang/feedback-evil
7
+ Project-URL: Issues, https://github.com/jianzhihuang/feedback-evil/issues
8
+ Author-email: jianzhihuang <minidora0702@gmail.com>
9
+ License-File: LICENSE
10
+ Keywords: ai,cross-platform,desktop-app,development,dual-interface,feedback,interactive,mcp,tauri,web-ui
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: MacOS X
13
+ Classifier: Environment :: Web Environment
14
+ Classifier: Environment :: Win32 (MS Windows)
15
+ Classifier: Environment :: X11 Applications
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Desktop Environment
23
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ Classifier: Topic :: Software Development :: User Interfaces
26
+ Requires-Python: >=3.11
27
+ Requires-Dist: aiohttp>=3.8.0
28
+ Requires-Dist: fastapi>=0.115.0
29
+ Requires-Dist: fastmcp>=2.0.0
30
+ Requires-Dist: jinja2>=3.1.0
31
+ Requires-Dist: mcp>=1.9.3
32
+ Requires-Dist: psutil>=7.0.0
33
+ Requires-Dist: starlette==0.45.3
34
+ Requires-Dist: uvicorn>=0.30.0
35
+ Requires-Dist: websockets>=13.0.0
36
+ Provides-Extra: dev
37
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
38
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
39
+ Description-Content-Type: text/markdown
40
+
41
+ # MCP Feedback Enhanced
42
+
43
+ **🌐 Language / 語言切換:** **English** | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md)
44
+
45
+ **Original Author:** [Fábio Ferreira](https://x.com/fabiomlferreira) | [Original Project](https://github.com/noopstudios/interactive-feedback-mcp) ⭐
46
+ **Enhanced Fork:** [Minidoracat](https://github.com/Minidoracat)
47
+ **UI Design Reference:** [sanshao85/mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector)
48
+
49
+ ## 🎯 Core Concept
50
+
51
+ This is an [MCP server](https://modelcontextprotocol.io/) 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.
52
+
53
+ **🌐 Dual Interface Architecture Advantages:**
54
+ - 🖥️ **Desktop Application**: Native cross-platform desktop experience, supporting Windows, macOS, Linux
55
+ - 🌐 **Web UI**: No GUI dependencies required, suitable for remote and WSL environments
56
+ - 🔧 **Flexible Deployment**: Choose the most suitable interface mode based on environment requirements
57
+ - 📦 **Unified Functionality**: Both interfaces provide exactly the same functional experience
58
+
59
+ **🖥️ 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.
60
+
61
+ **Supported Platforms:** [Cursor](https://www.cursor.com) | [Cline](https://cline.bot) | [Windsurf](https://windsurf.com) | [Augment](https://www.augmentcode.com) | [Trae](https://www.trae.ai)
62
+
63
+ ### 🔄 Workflow
64
+ 1. **AI Call** → `mcp-feedback-enhanced` tool
65
+ 2. **Interface Launch** → Auto-open desktop application or browser interface (based on configuration)
66
+ 3. **Smart Interaction** → Prompt selection, text input, image upload, auto-submit
67
+ 4. **Real-time Feedback** → WebSocket connection delivers information to AI instantly
68
+ 5. **Session Tracking** → Auto-record session history and statistics
69
+ 6. **Process Continuation** → AI adjusts behavior or ends task based on feedback
70
+
71
+ ## 🌟 Key Features
72
+
73
+ ### 🖥️ Dual Interface Support
74
+ - **Desktop Application**: Cross-platform native application based on Tauri, supporting Windows, macOS, Linux
75
+ - **Web UI Interface**: Lightweight browser interface suitable for remote and WSL environments
76
+ - **Automatic Environment Detection**: Intelligently recognizes SSH Remote, WSL and other special environments
77
+ - **Unified Feature Experience**: Both interfaces provide exactly the same functionality
78
+
79
+ ### 📝 Smart Workflow
80
+ - **Prompt Management**: CRUD operations for common prompts, usage statistics, intelligent sorting
81
+ - **Auto-Timed Submit**: 1-86400 second flexible timer, supports pause, resume, cancel with new pause/resume button controls
82
+ - **Auto Command Execution** (v2.6.0): Automatically execute preset commands after creating new sessions or commits for improved development efficiency
83
+ - **Session Management & Tracking**: Local file storage, privacy controls, history export (supports JSON, CSV, Markdown formats), real-time statistics, flexible timeout settings
84
+ - **Connection Monitoring**: WebSocket status monitoring, auto-reconnection, quality indicators
85
+ - **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
86
+
87
+ ### 🎨 Modern Experience
88
+ - **Responsive Design**: Adapts to different screen sizes, modular JavaScript architecture
89
+ - **Audio Notifications**: Built-in multiple sound effects, custom audio upload support, volume control
90
+ - **System Notifications** (v2.6.0): System-level real-time alerts for important events (like auto-commit, session timeout)
91
+ - **Smart Memory**: Input box height memory, one-click copy, persistent settings
92
+ - **Multi-language Support**: Traditional Chinese, English, Simplified Chinese, instant switching
93
+
94
+ ### 🖼️ Images & Media
95
+ - **Full Format Support**: PNG, JPG, JPEG, GIF, BMP, WebP
96
+ - **Convenient Upload**: Drag & drop files, clipboard paste (Ctrl+V)
97
+ - **Unlimited Processing**: Support for any size images, automatic intelligent processing
98
+
99
+ ## 🌐 Interface Preview
100
+
101
+ ### Web UI Interface (v2.5.0 - Desktop Application Support)
102
+
103
+ <div align="center">
104
+ <img src="docs/en/images/web1.png" width="400" alt="Web UI Main Interface - Prompt Management & Auto Submit" />
105
+ </div>
106
+
107
+ <details>
108
+ <summary>📱 Click to view complete interface screenshots</summary>
109
+
110
+ <div align="center">
111
+ <img src="docs/en/images/web2.jpeg" width="800" alt="Web UI Complete Interface - Session Management & Settings" />
112
+ </div>
113
+
114
+ </details>
115
+
116
+ *Web UI Interface - Supports desktop application and Web interface, providing prompt management, auto-submit, session tracking and other smart features*
117
+
118
+ ### Desktop Application Interface (v2.5.0 New Feature)
119
+
120
+ <div align="center">
121
+ <img src="docs/en/images/desktop1.png" width="600" alt="Desktop Application - Native Cross-platform Desktop Experience" />
122
+ </div>
123
+
124
+ *Desktop Application - Native cross-platform desktop application based on Tauri framework, supporting Windows, macOS, Linux with exactly the same functionality as Web UI*
125
+
126
+ **Shortcut Support**
127
+ - `Ctrl+Enter`(Windows/Linux)/ `Cmd+Enter`(macOS):Submit feedback (both main keyboard and numeric keypad supported)
128
+ - `Ctrl+V`(Windows/Linux)/ `Cmd+V`(macOS):Direct paste clipboard images
129
+ - `Ctrl+I`(Windows/Linux)/ `Cmd+I`(macOS):Quick focus input box (Thanks @penn201500)
130
+
131
+ ## 🚀 Quick Start
132
+
133
+ ### 1. Installation & Testing
134
+ ```bash
135
+ # Install uv (if not already installed)
136
+ pip install uv
137
+ ```
138
+
139
+ ### 2. Configure MCP
140
+ **Basic Configuration** (suitable for most users):
141
+ ```json
142
+ {
143
+ "mcpServers": {
144
+ "mcp-feedback-enhanced": {
145
+ "command": "uvx",
146
+ "args": ["feedback-evil"],
147
+ "timeout": 600,
148
+ "autoApprove": ["interactive_feedback"]
149
+ }
150
+ }
151
+ }
152
+ ```
153
+
154
+ **Advanced Configuration** (requires custom environment):
155
+ ```json
156
+ {
157
+ "mcpServers": {
158
+ "mcp-feedback-enhanced": {
159
+ "command": "uvx",
160
+ "args": ["feedback-evil"],
161
+ "timeout": 600,
162
+ "env": {
163
+ "MCP_DEBUG": "false",
164
+ "MCP_WEB_HOST": "127.0.0.1",
165
+ "MCP_WEB_PORT": "8765",
166
+ "MCP_LANGUAGE": "en"
167
+ },
168
+ "autoApprove": ["interactive_feedback"]
169
+ }
170
+ }
171
+ }
172
+ ```
173
+
174
+ **Desktop Application Configuration** (v2.5.0 new feature - using native desktop application):
175
+ ```json
176
+ {
177
+ "mcpServers": {
178
+ "mcp-feedback-enhanced": {
179
+ "command": "uvx",
180
+ "args": ["feedback-evil"],
181
+ "timeout": 600,
182
+ "env": {
183
+ "MCP_DESKTOP_MODE": "true",
184
+ "MCP_WEB_HOST": "127.0.0.1",
185
+ "MCP_WEB_PORT": "8765",
186
+ "MCP_DEBUG": "false"
187
+ },
188
+ "autoApprove": ["interactive_feedback"]
189
+ }
190
+ }
191
+ }
192
+ ```
193
+
194
+ **Configuration File Examples**:
195
+ - Desktop Mode: [examples/mcp-config-desktop.json](examples/mcp-config-desktop.json)
196
+ - Web Mode: [examples/mcp-config-web.json](examples/mcp-config-web.json)
197
+
198
+ ### 3. Prompt Engineering Setup
199
+ For optimal results, add the following rules to your AI assistant:
200
+
201
+ ```
202
+ # MCP Interactive Feedback Rules
203
+
204
+ follow mcp-feedback-enhanced instructions
205
+ ```
206
+
207
+ ## ⚙️ Advanced Settings
208
+
209
+ ### Environment Variables
210
+ | Variable | Purpose | Values | Default |
211
+ |----------|---------|--------|---------|
212
+ | `MCP_DEBUG` | Debug mode | `true`/`false` | `false` |
213
+ | `MCP_WEB_HOST` | Web UI host binding | IP address or hostname | `127.0.0.1` |
214
+ | `MCP_WEB_PORT` | Web UI port | `1024-65535` | `8765` |
215
+ | `MCP_DESKTOP_MODE` | Desktop application mode | `true`/`false` | `false` |
216
+ | `MCP_LANGUAGE` | Force UI language | `zh-TW`/`zh-CN`/`en` | Auto-detect |
217
+
218
+ **`MCP_WEB_HOST` Explanation**:
219
+ - `127.0.0.1` (default): Local access only, higher security
220
+ - `0.0.0.0`: Allow remote access, suitable for SSH remote development environments
221
+
222
+ **`MCP_LANGUAGE` Explanation**:
223
+ - Used to force the interface language, overriding automatic system detection
224
+ - Supported language codes:
225
+ - `zh-TW`: Traditional Chinese
226
+ - `zh-CN`: Simplified Chinese
227
+ - `en`: English
228
+ - Language detection priority:
229
+ 1. User-saved language settings in the interface (highest priority)
230
+ 2. `MCP_LANGUAGE` environment variable
231
+ 3. System environment variables (LANG, LC_ALL, etc.)
232
+ 4. System default language
233
+ 5. Fallback to default language (Traditional Chinese)
234
+
235
+ ### Testing Options
236
+ ```bash
237
+ # Version check
238
+ uvx mcp-feedback-enhanced@latest version # Check version
239
+
240
+ # Interface testing
241
+ uvx mcp-feedback-enhanced@latest test --web # Test Web UI (auto continuous running)
242
+ uvx mcp-feedback-enhanced@latest test --desktop # Test desktop application (v2.5.0 new feature)
243
+
244
+ # Debug mode
245
+ MCP_DEBUG=true uvx mcp-feedback-enhanced@latest test
246
+
247
+ # Specify language for testing
248
+ MCP_LANGUAGE=en uvx mcp-feedback-enhanced@latest test --web # Force English interface
249
+ MCP_LANGUAGE=zh-TW uvx mcp-feedback-enhanced@latest test --web # Force Traditional Chinese
250
+ MCP_LANGUAGE=zh-CN uvx mcp-feedback-enhanced@latest test --web # Force Simplified Chinese
251
+ ```
252
+
253
+ ### Developer Installation
254
+ ```bash
255
+ git clone https://github.com/Minidoracat/mcp-feedback-enhanced.git
256
+ cd mcp-feedback-enhanced
257
+ uv sync
258
+ ```
259
+
260
+ **Local Testing Methods**
261
+ ```bash
262
+ # Functional testing
263
+ make test-func # Standard functional testing
264
+ make test-web # Web UI testing (continuous running)
265
+ make test-desktop-func # Desktop application functional testing
266
+
267
+ # Or use direct commands
268
+ uv run python -m mcp_feedback_enhanced test # Standard functional testing
269
+ uvx --no-cache --with-editable . mcp-feedback-enhanced test --web # Web UI testing (continuous running)
270
+ uvx --no-cache --with-editable . mcp-feedback-enhanced test --desktop # Desktop application testing
271
+
272
+ # Desktop application build (v2.5.0 new feature)
273
+ make build-desktop # Build desktop application (debug mode)
274
+ make build-desktop-release # Build desktop application (release mode)
275
+ make test-desktop # Test desktop application
276
+ make clean-desktop # Clean desktop build artifacts
277
+
278
+ # Unit testing
279
+ make test # Run all unit tests
280
+ make test-fast # Fast testing (skip slow tests)
281
+ make test-cov # Test and generate coverage report
282
+
283
+ # Code quality checks
284
+ make check # Complete code quality check
285
+ make quick-check # Quick check and auto-fix
286
+ ```
287
+
288
+ **Testing Descriptions**
289
+ - **Functional Testing**: Test complete MCP tool functionality workflow
290
+ - **Unit Testing**: Test individual module functionality
291
+ - **Coverage Testing**: Generate HTML coverage report to `htmlcov/` directory
292
+ - **Quality Checks**: Include linting, formatting, type checking
293
+
294
+ ## 🆕 Version History
295
+
296
+ 📋 **Complete Version History:** [RELEASE_NOTES/CHANGELOG.en.md](RELEASE_NOTES/CHANGELOG.en.md)
297
+
298
+ ### Latest Version Highlights (v2.6.0)
299
+ - 🚀 **Auto Command Execution**: Automatically execute preset commands after creating new sessions or commits, improving workflow efficiency
300
+ - 📊 **Session Export Feature**: Support exporting session records to multiple formats for easy sharing and archiving
301
+ - ⏸️ **Auto-commit Control**: Added pause and resume buttons for better control over auto-commit timing
302
+ - 🔔 **System Notifications**: System-level notifications for important events with real-time alerts
303
+ - ⏱️ **Session Timeout Optimization**: Redesigned session management with more flexible configuration options
304
+ - 🌏 **I18n Enhancement**: Refactored internationalization architecture with full multilingual support for notifications
305
+ - 🎨 **UI Simplification**: Significantly simplified user interface for improved user experience
306
+
307
+ ## 🐛 Common Issues
308
+
309
+ ### 🌐 SSH Remote Environment Issues
310
+ **Q: Browser cannot launch or access in SSH Remote environment**
311
+ A: Two solutions available:
312
+
313
+ **Solution 1: Environment Variable Setting (v2.5.5 Recommended)**
314
+ Set `"MCP_WEB_HOST": "0.0.0.0"` in MCP configuration to allow remote access:
315
+ ```json
316
+ {
317
+ "mcpServers": {
318
+ "mcp-feedback-enhanced": {
319
+ "command": "uvx",
320
+ "args": ["feedback-evil"],
321
+ "timeout": 600,
322
+ "env": {
323
+ "MCP_WEB_HOST": "0.0.0.0",
324
+ "MCP_WEB_PORT": "8765"
325
+ },
326
+ "autoApprove": ["interactive_feedback"]
327
+ }
328
+ }
329
+ }
330
+ ```
331
+ Then open in local browser: `http://[remote-host-IP]:8765`
332
+
333
+ **Solution 2: SSH Port Forwarding (Traditional Method)**
334
+ 1. Use default configuration (`MCP_WEB_HOST`: `127.0.0.1`)
335
+ 2. Set up SSH port forwarding:
336
+ - **VS Code Remote SSH**: Press `Ctrl+Shift+P` → "Forward a Port" → Enter `8765`
337
+ - **Cursor SSH Remote**: Manually add port forwarding rule (port 8765)
338
+ 3. Open in local browser: `http://localhost:8765`
339
+
340
+ For detailed solutions, refer to: [SSH Remote Environment Usage Guide](docs/en/ssh-remote/browser-launch-issues.md)
341
+
342
+ **Q: Why am I not receiving new MCP feedback?**
343
+ A: Likely a WebSocket connection issue. **Solution**: Directly refresh the browser page.
344
+
345
+ **Q: Why isn't MCP being called?**
346
+ A: Please confirm MCP tool status shows green light. **Solution**: Repeatedly toggle MCP tool on/off, wait a few seconds for system reconnection.
347
+
348
+ **Q: Augment cannot start MCP**
349
+ A: **Solution**: Completely close and restart VS Code or Cursor, reopen the project.
350
+
351
+ ### 🔧 General Issues
352
+ **Q: How to use desktop application?**
353
+ A: v2.5.0 introduces cross-platform desktop application support. Set `"MCP_DESKTOP_MODE": "true"` in MCP configuration to enable:
354
+ ```json
355
+ {
356
+ "mcpServers": {
357
+ "mcp-feedback-enhanced": {
358
+ "command": "uvx",
359
+ "args": ["feedback-evil"],
360
+ "timeout": 600,
361
+ "env": {
362
+ "MCP_DESKTOP_MODE": "true",
363
+ "MCP_WEB_PORT": "8765"
364
+ },
365
+ "autoApprove": ["interactive_feedback"]
366
+ }
367
+ }
368
+ }
369
+ ```
370
+ **Configuration File Example**: [examples/mcp-config-desktop.json](examples/mcp-config-desktop.json)
371
+
372
+ **Q: How to use legacy PyQt6 GUI interface?**
373
+ 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`
374
+ **Note**: Legacy versions don't include new features (prompt management, auto-submit, session management, desktop application, etc.).
375
+
376
+ **Q: "Unexpected token 'D'" error appears**
377
+ A: Debug output interference. Set `MCP_DEBUG=false` or remove the environment variable.
378
+
379
+ **Q: Chinese character garbled text**
380
+ A: Fixed in v2.0.3. Update to latest version: `uvx mcp-feedback-enhanced@latest`
381
+
382
+ **Q: Window disappears or positioning errors in multi-screen environment**
383
+ 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.
384
+
385
+ **Q: Image upload failure**
386
+ A: Check file format (PNG/JPG/JPEG/GIF/BMP/WebP). System supports any size image files.
387
+
388
+ **Q: Web UI cannot start**
389
+ A: Check firewall settings or try using different ports.
390
+
391
+ **Q: UV Cache occupies too much disk space**
392
+ A: Due to frequent use of `uvx` commands, cache may accumulate to tens of GB. Regular cleanup recommended:
393
+ ```bash
394
+ # View cache size and detailed information
395
+ python scripts/cleanup_cache.py --size
396
+
397
+ # Preview cleanup content (no actual cleanup)
398
+ python scripts/cleanup_cache.py --dry-run
399
+
400
+ # Execute standard cleanup
401
+ python scripts/cleanup_cache.py --clean
402
+
403
+ # Force cleanup (attempts to close related programs, solving Windows file occupation issues)
404
+ python scripts/cleanup_cache.py --force
405
+
406
+ # Or directly use uv command
407
+ uv cache clean
408
+ ```
409
+ For detailed instructions, refer to: [Cache Management Guide](docs/en/cache-management.md)
410
+
411
+ **Q: AI models cannot parse images**
412
+ 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:
413
+ 1. Ensure good image quality (high contrast, clear text)
414
+ 2. Try uploading multiple times, retries usually succeed
415
+ 3. If parsing continues to fail, try adjusting image size or format
416
+
417
+ ## 🙏 Acknowledgments
418
+
419
+ ### 🌟 Support Original Author
420
+ **Fábio Ferreira** - [X @fabiomlferreira](https://x.com/fabiomlferreira)
421
+ **Original Project:** [noopstudios/interactive-feedback-mcp](https://github.com/noopstudios/interactive-feedback-mcp)
422
+
423
+ If you find it useful, please:
424
+ - ⭐ [Star the original project](https://github.com/noopstudios/interactive-feedback-mcp)
425
+ - 📱 [Follow the original author](https://x.com/fabiomlferreira)
426
+
427
+ ### Design Inspiration
428
+ **sanshao85** - [mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector)
429
+
430
+ ### Contributors
431
+ **penn201500** - [GitHub @penn201500](https://github.com/penn201500)
432
+ - 🎯 Auto-focus input box feature ([PR #39](https://github.com/Minidoracat/mcp-feedback-enhanced/pull/39))
433
+
434
+ **leo108** - [GitHub @leo108](https://github.com/leo108)
435
+ - 🌐 SSH Remote Development Support (`MCP_WEB_HOST` environment variable) ([PR #113](https://github.com/Minidoracat/mcp-feedback-enhanced/pull/113))
436
+
437
+ **Alsan** - [GitHub @Alsan](https://github.com/Alsan)
438
+ - 🍎 macOS PyO3 Compilation Configuration Support ([PR #93](https://github.com/Minidoracat/mcp-feedback-enhanced/pull/93))
439
+
440
+ **fireinice** - [GitHub @fireinice](https://github.com/fireinice)
441
+ - 📝 Tool Documentation Optimization (LLM instructions moved to docstring) ([PR #105](https://github.com/Minidoracat/mcp-feedback-enhanced/pull/105))
442
+
443
+ ### Community Support
444
+ - **Discord:** [https://discord.gg/Gur2V67](https://discord.gg/Gur2V67)
445
+ - **Issues:** [GitHub Issues](https://github.com/Minidoracat/mcp-feedback-enhanced/issues)
446
+
447
+ ## 📄 License
448
+
449
+ MIT License - See [LICENSE](LICENSE) file for details
450
+
451
+ ## 📈 Star History
452
+
453
+ [![Star History Chart](https://api.star-history.com/svg?repos=Minidoracat/mcp-feedback-enhanced&type=Date)](https://star-history.com/#Minidoracat/mcp-feedback-enhanced&Date)
454
+
455
+ ---
456
+ **🌟 Welcome to Star and share with more developers!**
@@ -0,0 +1,86 @@
1
+ mcp_feedback_enhanced/__init__.py,sha256=n2n_bu3kolJDQpexHUXZ1YdxhOfuWp7SBq5rp2mQXhk,1111
2
+ mcp_feedback_enhanced/__main__.py,sha256=6bY2MTDbRHElLA_LaSw-m--mBkHmx8p3_bLxrc3WAcY,14278
3
+ mcp_feedback_enhanced/debug.py,sha256=_MpCpKytdj000Q497o9fJVeKZUQySu8LBrFQVu8ikPQ,2347
4
+ mcp_feedback_enhanced/i18n.py,sha256=PDDH3J2GQMLqsdlxWMcGzZaiLiWVRsmdt1lgNjh7OQg,14387
5
+ mcp_feedback_enhanced/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ mcp_feedback_enhanced/server.py,sha256=u16HGLt-p0L2I02uINEUg-W6Ir0AfA46UpJX7G-E34Y,24853
7
+ mcp_feedback_enhanced/desktop_app/__init__.py,sha256=GkFihirjeUqfgzHODzhL_5XMJyhZUqbn0Hgne1H70KQ,690
8
+ mcp_feedback_enhanced/desktop_app/desktop_app.py,sha256=xRkqXniEm3B2R3mtrPzBm4Wh4kR2uOpEGUsQD87tmJQ,11681
9
+ mcp_feedback_enhanced/desktop_release/__init__.py,sha256=YYYxLC0-B8qVE7zd7DXgVQO8HFiWCklHV-mEu7QNlNo,37
10
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-linux,sha256=LZ2e80yIeml6i1FTpAzKsKI2bqoV4Kiu14F3NPCejOs,5338296
11
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-arm64,sha256=BNXcRFv9ntrKCIzJKz1ncjfvO2saiOA7s-hLS1lHHPo,4475840
12
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-intel,sha256=6nvBkhct8l28whf8DQWaQdNiqXnScE3N6v8sk8nU_mc,4904060
13
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop.exe,sha256=Jmlpq2_t15PB6x0d0_NR5ufzC2bWiYzGKf6EkDg13yo,4711424
14
+ mcp_feedback_enhanced/utils/__init__.py,sha256=GXN7-AZLOBLauQWyizlCbUJTK8pmbgzcs69vUmjd7ZM,603
15
+ mcp_feedback_enhanced/utils/error_handler.py,sha256=78EwtLijs-_YUzp3Irq6Kog9sVxH_l01fiRUaByhmSU,15477
16
+ mcp_feedback_enhanced/utils/memory_monitor.py,sha256=KWRRJX-aPKVg7SSKY1TOrTR0QQcBOclJMl3FfJ8oH8g,18718
17
+ mcp_feedback_enhanced/utils/resource_manager.py,sha256=rXclr0rA0fBMlMGPrehPY1Q-VuCcnPVOdTXv50BMD6g,27233
18
+ mcp_feedback_enhanced/web/__init__.py,sha256=4JqG9XfWUmsg8KHTRd3XhIjM5cDmT5EF52g8G7IGBxI,683
19
+ mcp_feedback_enhanced/web/main.py,sha256=5QkPa2FdktAgaNURvgORkLfKMy-ufRn97CTRP0phuww,51009
20
+ mcp_feedback_enhanced/web/constants/__init__.py,sha256=B_aQ7CtBJ11GZ6r37XXFbP27WoXQct9gXK5Zej2tY-E,141
21
+ mcp_feedback_enhanced/web/constants/message_codes.py,sha256=C4-CGgIBeKBppWkOUrxTI-pXGR-fpDoE-COwt3K-j9I,7084
22
+ mcp_feedback_enhanced/web/locales/en/translation.json,sha256=KdbXb1qCf_vXRZ1KkkxCHf1A391LscqaaT-y5m653xc,30912
23
+ mcp_feedback_enhanced/web/locales/zh-CN/translation.json,sha256=YGvBK4cTPid2-mxE93evhzYH5zO9ie4tAtiGBY_VjZo,28715
24
+ mcp_feedback_enhanced/web/locales/zh-TW/translation.json,sha256=6qDlLfQknEFzrHikhOsqmn69R1s8siiyzJWE_6rZ8ls,30179
25
+ mcp_feedback_enhanced/web/models/__init__.py,sha256=aP9Yird_B6n0oUxyJGHxxtohgzKIdoNkAjYb27-n-9Y,349
26
+ mcp_feedback_enhanced/web/models/feedback_result.py,sha256=hapCvXwcvGUrzw-tXYJIFIuJeUUy0RyweMe6T8xOEMQ,330
27
+ mcp_feedback_enhanced/web/models/feedback_session.py,sha256=AuiFMXXrI2YVt5WcaR1V-9W-aQdlTO_fso6eh-HysV4,41688
28
+ mcp_feedback_enhanced/web/routes/__init__.py,sha256=FIyTdIZICp9XSln_saT9ZJcW4YZRgvIDbwZN2528-8w,189
29
+ mcp_feedback_enhanced/web/routes/main_routes.py,sha256=7F_usuXo1bOS1d-y8Y6df7BDsmBFHjmIdNu_i6EvSQA,26885
30
+ mcp_feedback_enhanced/web/static/favicon.ico,sha256=UsNBKoWAkzlMmoQIdAfJcK_88l8jMpY3V-RwUoxvStc,2238
31
+ mcp_feedback_enhanced/web/static/icon-192.png,sha256=jXpgTqCp9rnlpIccrJu9nsRxEGJSslvWOk0WR6-zw18,1067
32
+ mcp_feedback_enhanced/web/static/icon.svg,sha256=PaCx09M2eqhqaLfaJXsI_zv2yw0dkMv_AaqzyQUpIHQ,935
33
+ mcp_feedback_enhanced/web/static/index.html,sha256=FEJOYbrrzbcI3WSpZ39Enp_lTwsc0PhzZ-J3BhaTAI8,5355
34
+ mcp_feedback_enhanced/web/static/css/audio-management.css,sha256=BRpoXVKTww9htjsvfenWZ21rRyRbRTOtvdGP-CtNNMQ,11134
35
+ mcp_feedback_enhanced/web/static/css/notification-settings.css,sha256=yKksiWncIZuqT_2SwS80lYFbxKP2pzv_1wnM0Z4MXAM,3082
36
+ mcp_feedback_enhanced/web/static/css/prompt-management.css,sha256=VZrSdNE3Ez3dGbihPWqSA2utBuN7kNDhNaVQdoGuTZY,11992
37
+ mcp_feedback_enhanced/web/static/css/session-management.css,sha256=d1gtNP5Pfm425f_OAYTUIZYJCMJuTiImBTsWtl6fuzI,30027
38
+ mcp_feedback_enhanced/web/static/css/styles.css,sha256=WrQBz99QN_r0OY6Kwsve6ilBZyeqzBAbVwasRm3HN40,49615
39
+ mcp_feedback_enhanced/web/static/js/app.js,sha256=Vb8QNflECsnHemVug_9ZKtTv2-n5BUlwsJsHwATOX7M,89961
40
+ mcp_feedback_enhanced/web/static/js/i18n.js,sha256=ISzkqFvl6Umqv4Nag0JTj_1aU2yR0_dMa_CeHzj5eFo,15166
41
+ mcp_feedback_enhanced/web/static/js/modules/connection-monitor.js,sha256=UlPBE-zXRVOrElZRiozb7wUO7tpbgWtwRa64vc_yjnY,15231
42
+ mcp_feedback_enhanced/web/static/js/modules/file-upload-manager.js,sha256=rsM8ztQvMi3L4TbO70c0JEidUjzNw1CMccTScF0g71c,19587
43
+ mcp_feedback_enhanced/web/static/js/modules/image-handler.js,sha256=BF8DzqoaAEejMcFmtZxWr29yboIJk6XQlLepZe0Zq0s,6294
44
+ mcp_feedback_enhanced/web/static/js/modules/logger.js,sha256=HwlEYx1LII1cIecbtzud9pNCeJubahskMCdQ9VuECV0,12553
45
+ mcp_feedback_enhanced/web/static/js/modules/session-manager.js,sha256=ykCMjvMBTY17w6Z5Y5UDfHUH_iu6l-WfdG3TjeM8O1c,40447
46
+ mcp_feedback_enhanced/web/static/js/modules/settings-manager.js,sha256=fFIYqLGjRX1daiUXMfRTPB3s16CN0xnlAaC73N7EFGE,40768
47
+ mcp_feedback_enhanced/web/static/js/modules/tab-manager.js,sha256=Ib1KfeqH_E0TF4koyHP1SOoSLNDC36wDtg0uStKLpLA,6681
48
+ mcp_feedback_enhanced/web/static/js/modules/textarea-height-manager.js,sha256=RP6a2_AlpPYlnq8f8UTxHM7MyGMeO0QSXfgRzQuWrO8,8646
49
+ mcp_feedback_enhanced/web/static/js/modules/ui-manager.js,sha256=HgpB4YacL2zkekwZR9ApiL82vQKk58ranPDPHousBzo,20344
50
+ mcp_feedback_enhanced/web/static/js/modules/utils.js,sha256=kZtSeT7kVdm11Q1AhQiRD95qMP1Zj7tDBdi5Yxzt6yc,19277
51
+ mcp_feedback_enhanced/web/static/js/modules/websocket-manager.js,sha256=xGXRo-xVUQHhyHAl-5IerC6ecemOgybximMB0YjPTYI,21990
52
+ mcp_feedback_enhanced/web/static/js/modules/audio/audio-manager.js,sha256=y9n3SNNd_UWourhUtRpEyDAvT-BiKLODrGmF_QwyHyM,21250
53
+ mcp_feedback_enhanced/web/static/js/modules/audio/audio-settings-ui.js,sha256=V8MkQDyCTg_tXzMEcxW0-WM44385C5sUH0YZuLRV6m0,28328
54
+ mcp_feedback_enhanced/web/static/js/modules/constants/message-codes.js,sha256=wrwI-iNwf_eA560SU_HA9cLUcA8WAAQjk5JpxLcUErU,5862
55
+ mcp_feedback_enhanced/web/static/js/modules/notification/notification-manager.js,sha256=PLgOnFbYvYJWwBUXqAAneIywfEKa_H3nWvM1TL7TFcI,11657
56
+ mcp_feedback_enhanced/web/static/js/modules/notification/notification-settings.js,sha256=ngxTwTpWvyrYHqOSvqspinIZOm54wDKRGPnVknBBixE,12954
57
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-input-buttons.js,sha256=oJdJ79zmDXLNilwy9ImDovMBzcJEwKQgioIXqdK5CGI,14743
58
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-manager.js,sha256=ArMuYwP2wvJHP61GESzGg_W8iH2fTmM889iIN40FGjM,12904
59
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-modal.js,sha256=7DpWNp1g_qL7ZfWmryJOtWLn2Zj_ZVSKl3nNeZGDJ8Q,15122
60
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-settings-ui.js,sha256=0t2__xHN9qKTiDeVxdexNK0P8o_wjJNTsvuesUNC2aE,20585
61
+ mcp_feedback_enhanced/web/static/js/modules/session/session-data-manager.js,sha256=3QkJENBmBWUqxkeU_HU34U55gs0FMcHrPbYaKo2gvU8,37738
62
+ mcp_feedback_enhanced/web/static/js/modules/session/session-details-modal.js,sha256=DIlGtB2BMcjvcnpioreGRyXF61WQfZ5dvWQ0eNp-_8c,23368
63
+ mcp_feedback_enhanced/web/static/js/modules/session/session-ui-renderer.js,sha256=9Tmfd3VXAv0LQl3PRatAvkwVvDgvMGASoJ5YEc2NECQ,31682
64
+ mcp_feedback_enhanced/web/static/js/modules/utils/dom-utils.js,sha256=qq7C-DRmLdkxXub8uKgETtuI4FfpB8Bkj-W3bBIMKh4,12130
65
+ mcp_feedback_enhanced/web/static/js/modules/utils/status-utils.js,sha256=3yHcrdpN4F1OMni2ZeU7bCmTT6J9Ug-Pl3HKu0BqiUM,14448
66
+ mcp_feedback_enhanced/web/static/js/modules/utils/time-utils.js,sha256=u_OoRqeuWyYnKnadYq3pa71fXUPaX1pCMGr9E72Ukp4,15454
67
+ mcp_feedback_enhanced/web/static/js/vendor/marked.min.js,sha256=dDOFKG7GZnx2ioFQnuEKjZDrGk59S4jgNJi0afbvXrk,36527
68
+ mcp_feedback_enhanced/web/static/js/vendor/purify.min.js,sha256=F-oL0_orl0uXXqXUPgYZ678RpEpp5FT2MWZhFo2x0Q8,22067
69
+ mcp_feedback_enhanced/web/templates/feedback.html,sha256=8Bl1OXBJc8go74LznDwL0cpetlnqUyaf8vHjJLGAZ5c,74378
70
+ mcp_feedback_enhanced/web/templates/index.html,sha256=8crKjWHDIh792Dq_pNSiDWdMRbXH2nI5A0orEwsGCHI,9635
71
+ mcp_feedback_enhanced/web/templates/components/image-upload.html,sha256=KLUaM8j9SHycKTuss6LriX18ObW-PsM1LB0yN7SrcMw,1848
72
+ mcp_feedback_enhanced/web/templates/components/settings-card.html,sha256=CJZ1CLCgJYizp0zI43jO23yyCBzSyodjzHmBZ5o9Y90,1600
73
+ mcp_feedback_enhanced/web/templates/components/status-indicator.html,sha256=AWfEkjEEN6BcZSnisBv0ggkhKHllg7LlAzqI-QsZgD8,993
74
+ mcp_feedback_enhanced/web/templates/components/toggle-switch.html,sha256=oobJzSj-ivrnZWXpmXtuyBHVfpuakRVnPs-UOKwXVUQ,488
75
+ mcp_feedback_enhanced/web/utils/__init__.py,sha256=JSkN81hYLTGYP1cZMN_ywZQLVHqYe0-F1uVuHpHBJiE,249
76
+ mcp_feedback_enhanced/web/utils/browser.py,sha256=P4MQkQ3P-G7gmF0ag9BGvF5rm7f26Pf-hROmMww2sdM,4459
77
+ mcp_feedback_enhanced/web/utils/compression_config.py,sha256=lM3vf6iDpH0jCaM70Rmf7a_7Q4Dqh5UO4N47FWbTHZY,6508
78
+ mcp_feedback_enhanced/web/utils/compression_monitor.py,sha256=IPMOA3Q35eqepSZaiYRAKswKSAYVe5PQMvkHBn1NOJA,11517
79
+ mcp_feedback_enhanced/web/utils/network.py,sha256=-X0o86vlNPMvIuefiBDnSqgwW_aY-Uy-zuk-xRAUmZE,1731
80
+ mcp_feedback_enhanced/web/utils/port_manager.py,sha256=WCfb9cxDLpDuNZ2a2Ud5Orjuut7gX_f7zgHoyPzH2PE,11468
81
+ mcp_feedback_enhanced/web/utils/session_cleanup_manager.py,sha256=3kObepZ7RiR1chkeTCR8atU3QNh6P_HNBuipvpE_5Qg,19993
82
+ feedback_evil-2.6.0.dist-info/METADATA,sha256=qT8H23ScnKGlVQyRGWiSPgDESYASYV_V9D-tDbq3yLo,20397
83
+ feedback_evil-2.6.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
84
+ feedback_evil-2.6.0.dist-info/entry_points.txt,sha256=-iZtVeyMEoEflC_x86g8WxTJnepQ0Hnl-cymkaf7ONA,193
85
+ feedback_evil-2.6.0.dist-info/licenses/LICENSE,sha256=I0UQtD9ViYcQIQMsHBQCh0BP8rAXl2uMlvk6Y7sNU1w,1189
86
+ feedback_evil-2.6.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ feedback-evil = mcp_feedback_enhanced.__main__:main
3
+ interactive-feedback-mcp = mcp_feedback_enhanced.__main__:main
4
+ mcp-feedback-enhanced = mcp_feedback_enhanced.__main__:main
@@ -0,0 +1,24 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Fábio Ferreira
4
+
5
+ Portions of this software are modifications and enhancements
6
+ Copyright (c) 2024 Minidoracat
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction, including without limitation the rights
11
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in all
16
+ copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
+ SOFTWARE.
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ MCP Interactive Feedback Enhanced
4
+ ==================================
5
+
6
+ 互動式用戶回饋 MCP 伺服器,提供 AI 輔助開發中的回饋收集功能。
7
+
8
+ 作者: Fábio Ferreira
9
+ 增強功能: Web UI 支援、圖片上傳、現代化界面設計
10
+
11
+ 特色:
12
+ - Web UI 介面支援
13
+ - 智慧環境檢測
14
+ - 命令執行功能
15
+ - 圖片上傳支援
16
+ - 現代化深色主題
17
+ - 重構的模組化架構
18
+ """
19
+
20
+ __version__ = "2.6.0"
21
+ __author__ = "Minidoracat"
22
+ __email__ = "minidora0702@gmail.com"
23
+
24
+ import os
25
+
26
+ from .server import main as run_server
27
+
28
+ # 導入新的 Web UI 模組
29
+ from .web import WebUIManager, get_web_ui_manager, launch_web_feedback_ui, stop_web_ui
30
+
31
+
32
+ # 保持向後兼容性
33
+ feedback_ui = None
34
+
35
+ # 主要導出介面
36
+ __all__ = [
37
+ "WebUIManager",
38
+ "__author__",
39
+ "__version__",
40
+ "feedback_ui",
41
+ "get_web_ui_manager",
42
+ "launch_web_feedback_ui",
43
+ "run_server",
44
+ "stop_web_ui",
45
+ ]
46
+
47
+
48
+ def main():
49
+ """主要入口點,用於 uvx 執行"""
50
+ from .__main__ import main as cli_main
51
+
52
+ return cli_main()