#  Interactive Feedback MCP
一个简单的 [MCP Server](https://modelcontextprotocol.io/),用于在AI辅助开发工具(如 [Cursor](https://www.cursor.com)、[Cline](https://cline.bot) 、 [Windsurf](https://windsurf.com))和[Augment]插件中实现人机协作工作流。该服务器允许您轻松地直接向AI代理提供反馈,让AI与您之间更好地协作。
**详细信息请参阅:**
* [功能说明.md](./功能说明.md) - 了解本服务提供的各项功能。
* [安装与配置指南.md](./安装与配置指南.md) - 获取详细的安装和设置步骤。
**注意:** 此服务器设计为与MCP客户端(例如Cursor、VS Code)在本地一同运行,因为它需要直接访问用户的操作系统以显示UI和执行键盘/鼠标操作。
## 🖼️ 示例




*(请注意,示例图片可能未反映最新的UI调整,但核心交互流程保持不变)*
## 💡 为何使用此工具?
1.在像Cursor这样的环境中,您发送给LLM的每个提示都被视为一个独立的请求——每个请求都会计入您的每月限额(例如,500个高级请求)。当您迭代模糊指令或纠正被误解的输出时,这会变得效率低下,因为每次后续澄清都会触发一个全新的请求。
此MCP服务器引入了一种变通方法:它允许模型在最终确定响应之前暂停并请求澄清。模型不会直接完成请求,而是触发一个工具调用 (`interactive_feedback`),打开一个交互式反馈窗口。然后,您可以提供更多细节或要求更改——模型会继续会话,所有这些都在单个请求内完成。
从本质上讲,这只是巧妙地利用工具调用来推迟请求的完成。由于工具调用不计为单独的高级交互,因此您可以在不消耗额外请求的情况下循环执行多个反馈周期。
简而言明,这有助于您的AI助手在猜测之前请求澄清,而不会浪费另一个请求。这意味着更少的错误答案、更好的性能和更少的API使用浪费。
2.一定程度上可替代原有的IDA对话栏,直接使用MCP服务与AI对话
- **💰 减少高级API调用:** 避免浪费昂贵的API调用来基于猜测生成代码。
- **✅ 更少错误:** 行动前的澄清意味着更少的错误代码和时间浪费。
- **⏱️ 更快周期:** 快速确认胜过调试错误的猜测。
- **🎮 更好协作:** 将单向指令转变为对话,让您保持控制。
## 🌟 核心功能与使用技巧
### 处理图片
- **粘贴:** 在反馈窗口的文本输入框中按 `Ctrl+V` (或 `Cmd+V`) 粘贴图片。您可以同时粘贴多张图片和文本。
- **拖拽:** 直接从文件管理器拖拽图片文件到文本输入框中。
- **选择:** 点击"选择文件"按钮,通过文件对话框选择图片文件。
- **图片预览:** 添加的图片会在输入框下方显示可点击的缩略图预览。点击缩略图可以移除对应的图片。
### 文件引用
- **拖拽文件:** 将任意文件从文件管理器拖拽到文本输入框,会生成蓝色的文件引用(如 `@文件名.txt`)。
- **选择文件:** 点击"选择文件"按钮选择多个文件,支持图片和普通文件的混合选择。
- **智能处理:** 系统自动识别图片文件和普通文件,分别进行相应的处理和显示。
### 常用语
- **hover预览:** 鼠标悬停在"常用语"按钮上可快速预览所有常用语,支持滚动查看。
- **快速插入:** 在预览窗口中点击常用语可直接插入到输入框,无需打开管理对话框。
- **管理:** 点击"常用语"按钮打开管理对话框,可以添加、编辑、删除和排序常用语。
### 文本优化和增强
- **一键优化:** 点击"优化"按钮将口语化输入转换为结构化指令,提高AI理解准确性。
- **自定义增强:** 点击"增强"按钮,可使用自定义提示词对文本进行特定处理。
- **API配置:** 在设置页面配置OpenAI、Gemini、DeepSeek等AI提供商的API密钥。
- **撤销功能:** 优化后可使用Ctrl+Z撤销,恢复原始文本内容。
### 窗口截图
- **矩形截图:** 点击截图按钮后,UI窗口自动最小化,可进行矩形区域选择截图。
- **自动集成:** 截图完成后自动添加到输入内容中,与图片功能无缝集成。
- **实时预览:** 截图选择过程中提供实时的选择区域预览效果。
### 界面布局
- **布局切换:** 在设置页面可以选择垂直布局(上下分布)或水平布局(左右分布)。
- **分割器拖拽:** 拖拽分割器手柄可以调整各区域的大小,双击分割器可重置为默认比例。
- **状态保存:** 布局选择和分割器位置会自动保存,下次启动时恢复。
### 显示模式配置
- **简单模式:** 显示AI处理后的简洁问题,适合快速交互。
- **完整模式:** 显示AI的原始完整回复内容,适合详细查看。
- **动态切换:** 可在设置页面实时切换显示模式,立即生效。
## 🛠️ 工具
此服务器通过模型上下文协议 (MCP) 公开以下工具:
### `interactive_feedback`
- **功能:** 向用户发起交互式会话,显示提示信息,提供可选选项,并收集用户的文本、图片和文件引用反馈。支持多种交互方式包括文本输入、图片粘贴/拖拽、文件拖拽/选择等。
- **参数:**
- `message` (str, 可选): 简单模式下显示的简洁问题或提示
- `full_response` (str, 可选): 完整模式下显示的AI原始完整回复内容
- `predefined_options` (List[str], 可选): 一个字符串列表,每个字符串代表一个用户可以选择的预定义选项。如果提供,这些选项会显示为复选框。
- **智能回退机制:**
- **简单模式**:优先使用 `message` 参数,如果为空则自动回退到 `full_response`
- **完整模式**:优先使用 `full_response` 参数,如果为空则自动回退到 `message`
- **实时模式检测**:每次调用都读取最新的用户模式配置,支持动态切换
- **错误处理**:只有当两个参数都为空时才返回错误,避免不必要的调用失败
- **用户交互方式:**
- **文本输入**:在主输入框中输入反馈文本
- **图片处理**:通过Ctrl+V粘贴或拖拽图片文件
- **文件引用**:通过拖拽文件或点击"选择文件"按钮添加文件引用
- **常用语**:通过hover预览或管理对话框快速插入预设短语
- **布局调整**:通过拖拽分割器调整界面布局
- **文本优化**:通过优化和增强按钮处理输入文本
- **窗口截图**:通过截图按钮进行矩形选择截图
- **返回给AI助手的数据格式:**
该工具会返回一个包含结构化反馈内容的元组 (Tuple)。元组中的每个元素可以是字符串 (文本反馈或文件引用信息) 或 `fastmcp.Image` 对象 (图片反馈)。
具体来说,从UI收集到的数据会转换成以下 `content` 项列表,并由 MCP 服务器进一步处理成 FastMCP兼容的元组:
```json
// UI返回给MCP服务器的原始JSON结构示例
{
"content": [
{"type": "text", "text": "用户的文本反馈..."},
{"type": "image", "data": "base64_encoded_image_data", "mimeType": "image/jpeg"},
{"type": "file_reference", "display_name": "@example.txt", "path": "/path/to/local/example.txt"}
// ... 可能有更多项
]
}
```
* **文本内容** (`type: "text"`):包含用户输入的文本和/或选中的预定义选项组合文本。
* **图片内容** (`type: "image"`):包含 Base64 编码后的图片数据和图片的 MIME 类型 (如 `image/jpeg`)。这些在 MCP 服务器中会被转换为 `fastmcp.Image` 对象。
* **文件引用** (`type: "file_reference"`):包含用户拖拽或选择的文件的显示名 (如 `@filename.txt`) 和其在用户本地的完整路径。这些信息通常会作为文本字符串传递给AI助手。
**注意:**
* 即便没有任何用户输入(例如用户直接关闭反馈窗口),工具也会返回一个表示"无反馈"的特定消息,如 `("[User provided no feedback]",)`。
### `optimize_user_input`
- **功能:** 使用配置的LLM API来优化或增强用户输入的文本,将口语化、可能存在歧义的输入转化为更结构化、更清晰、更便于AI模型理解的文本。
- **参数:**
- `original_text` (str): **必须参数**。用户的原始输入文本
- `mode` (str): **必须参数**。优化模式:
- `'optimize'`: 一键优化,使用预设的通用优化指令
- `'reinforce'`: 提示词强化,使用用户自定义的强化指令
- `reinforcement_prompt` (str, 可选): 在 'reinforce' 模式下用户的自定义指令
- **支持的AI提供商:**
- **OpenAI**: GPT-4o-mini 等模型
- **Google Gemini**: Gemini-2.0-flash 等模型
- **DeepSeek**: DeepSeek-chat 等模型
- **火山引擎**: DeepSeek-v3 等模型
- **返回:** 优化后的文本内容或错误信息
## 📦 安装
### 方式一:直接从PyPI安装(推荐)
**使用uvx(推荐):**
```bash
# 直接运行,无需安装
uvx interactive-feedback@latest
# 如果首次安装失败(通常由于PySide6等大包下载超时),可以预安装:
uv tool install interactive-feedback@latest
```
**使用pip:**
```bash
pip install interactive-feedback
```
**当前版本:** v2.5.9.11 - 采用增强内联样式彻底解决uv环境内联代码显示问题,确保完全兼容
### 方式二:开发安装
1. **先决条件:**
* Python 3.11 或更新版本。
* [uv](https://github.com/astral-sh/uv) (一个快速的Python包安装和解析工具)。按以下方式安装:
* Windows: `pip install uv`
* Linux/macOS: `curl -LsSf https://astral.sh/uv/install.sh | sh`
* 或者参考 `uv` 官方文档获取其他安装方式。
2. **获取代码:**
* 克隆此仓库:
`git clone https://github.com/pawaovo/interactive-feedback-mcp.git`
* 或者下载源代码压缩包并解压。
3. **安装依赖:**
* 进入仓库目录 (`cd interactive-feedback-mcp`)。
* 运行:
`uv pip install -r requirements.txt`
* **图片支持的额外依赖:** 为了使图片粘贴正常工作,还需要以下包:
`pyperclip`, `Pillow`。
在Windows上,还需要 `pywin32`。
这些通常可以通过 `uv pip install pyperclip Pillow pywin32` (Windows) 或 `uv pip install pyperclip Pillow` (其他系统) 来安装。`requirements.txt` 已包含这些。
## ⚙️ 配置
### 方式一:使用uvx(推荐)
将以下配置添加到您的 `claude_desktop_config.json` (Claude Desktop) 或 `mcp_servers.json` (Cursor, 通常在 `.cursor-ai/mcp_servers.json` 或用户配置目录中):
```json
{
"mcpServers": {
"interactive-feedback": {
"command": "uvx",
"args": [
"interactive-feedback@latest"
],
"timeout": 600,
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
**如果预安装了工具,可以简化配置(后续再改为"interactive-feedback@latest"):**
```json
{
"mcpServers": {
"interactive-feedback": {
"command": "uvx",
"args": [
"interactive-feedback"
],
"timeout": 600,
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
### 推荐配置方式:uvx + UI 设置
**MCP JSON 中仅配置服务,API key 通过 UI 设置页面管理:**
```json
{
"mcpServers": {
"interactive-feedback": {
"command": "uvx",
"args": [
"interactive-feedback@latest"
],
"timeout": 600,
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
**优势:**
- ✅ **零安装**:无需手动安装任何依赖
- ✅ **自动更新**:总是使用最新版本
- ✅ **灵活配置**:API key 通过 UI 界面管理
- ✅ **多提供商**:支持多个 AI 提供商配置和切换
- ✅ **用户友好**:直观的图形界面配置
**使用步骤:**
1. 在 MCP JSON 中添加上述配置
2. 重启 AI 助手
3. 在 UI 设置页面中配置 API key
4. 开始使用所有功能
### 方式二:使用pip安装后配置
如果您使用pip安装,配置如下:
```json
{
"mcpServers": {
"interactive-feedback": {
"command": "interactive-feedback",
"timeout": 600,
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
### 方式三:开发模式配置
如果您克隆了仓库进行开发,配置如下:
**重要提示:** 将 `/path/to/interactive-feedback-mcp` 替换为您在系统上克隆或解压本仓库的 **实际绝对路径**。
```json
{
"mcpServers": {
"interactive-feedback": {
"command": "uv",
"args": [
"--directory",
"path/to/interactive-feedback-mcp",
"run",
"interactive-feedback"
],
"timeout": 600,
"autoApprove": [
"interactive_feedback"
]
}
}
}
```
**关于 `command` 和 `args` 的说明:**
- 如果 `uv` 在您的系统路径中,并且您希望 `uv` 管理虚拟环境和运行脚本,可以使用 `"command": "uv", "args": ["run", "interactive-feedback"]`。
- 如果您更倾向于直接使用系统Python(并已在全局或项目虚拟环境中安装了依赖),可以使用 `"command": "interactive-feedback"` (需要先安装包)。
- **`cwd` (Current Working Directory):** 强烈建议设置 `cwd` 为此项目的根目录,以确保脚本能正确找到其依赖文件。
2. 将以下自定义规则添加到您的AI助手中 (例如,在 Cursor 的设置 -> Rules -> User Rules):
```text
Always respond in Chinese-simplified
你是 IDE 的 AI 编程助手,遵循核心工作流(研究 -> 构思 -> 计划 -> 执行 -> 优化 -> 评审)用中文协助用户,面向专业程序员,交互应简洁专业,避免不必要解释。
[沟通守则]
1. 响应以模式标签 `[模式:X]` 开始,初始为 `[模式:研究]`。
2. 核心工作流严格按 `研究 -> 构思 -> 计划 -> 执行 -> 优化 -> 评审` 顺序流转,用户可指令跳转。
[核心工作流详解]
1. `[模式:研究]`:理解需求。
2. `[模式:构思]`:提供至少两种可行方案及评估(例如:`方案 1:描述`)。
3. `[模式:计划]`:将选定方案细化为详尽、有序、可执行的步骤清单(含原子操作:文件、函数 / 类、逻辑概要;预期结果;新库用 `Context7` 查询)。不写完整代码。完成后用 `interactive-feedback` 请求用户批准。
4. `[模式:执行]`:必须用户批准方可执行。严格按计划编码执行。计划简要(含上下文和计划)存入 `./issues/ 任务名.md`。关键步骤后及完成时用 `interactive-feedback` 反馈。
5. `[模式:优化]`:在`[模式:执行]完成后,必须自动进行本模式[模式:优化],自动检查并分析本次任务已实现(仅本次对话产生的相关代码),在[模式:执行]下产生的相关代码。聚焦冗余、低效、垃圾代码,提出具体优化建议(含优化理由与预期收益),用户确认后执行相关优化功能。
6. `[模式:评审]`:对照计划评估执行结果,报告问题与建议。完成后用 `mcp-feedback-enhanced` 请求用户确认。
[快速模式]
`[模式:快速]`:跳过核心工作流,快速响应。完成后用 `interactive-feedback` 请求用户确认。
[主动反馈与 MCP 服务]
# MCP interactive-feedback 规则
1. 在任何流程、任务、对话进行时,无论是询问、回复、或完成阶段性任务,皆必须调用 MCP interactive-feedback。
2. 每当收到用户反馈,若反馈内容非空,必须再次调用 MCP interactive-feedback,并根据反馈内容调整行为。
3. 仅当用户明确表示「结束」或「不再需要交互」时,才可停止调用 MCP interactive-feedback,流程才算结束。
4. 除非收到结束指令,否则所有步骤都必须重复调用 MCP interactive-feedback。
5. 完成任务前,必须使用 MCP interactive-feedback 工具向用户询问反馈。
* **MCP 服务 **:
* `interactive-feedback`: 用户反馈。
* `Context7`: 查询最新库文档 / 示例。
* `DeepWiki`: 查询相关 GitHub 仓库的文档 / 示例。
* 优先使用 MCP 服务。
```
这将确保您的AI助手遵循专业的编程工作流,并在适当时机使用此MCP服务器进行交互式反馈。
## 🔧 故障排除
如果在安装或配置过程中遇到问题,请参考以下解决方案:
### uvx安装故障排除
**问题1**:首次uvx安装失败,通常由于PySide6等大包下载超时。
**解决方案**:
1. **预安装工具**:
```bash
uv tool install interactive-feedback@latest
```
2. **修改MCP配置**(预安装后):
```json
{
"mcpServers": {
"interactive-feedback": {
"command": "uvx",
"args": [
"interactive-feedback"
],
"timeout": 600,
"autoApprove": ["interactive_feedback"]
}
}
}
```
**配置方式区别**:
- `@latest`:临时运行,每次都下载最新版本
- 不带版本号:使用已安装的工具,启动更快
**问题2**:MCP配置中使用 `"command": "uvx"` 时出现"命令未找到"错误。
**解决方案**:
1. **检查uvx安装位置**:
```bash
# Windows
where uvx
# Linux/macOS
which uvx
```
2. **使用完整路径**:
将MCP配置中的 `"uvx"` 替换为完整路径,例如:
```json
{
"mcpServers": {
"interactive-feedback": {
"command": "D:/python/Scripts/uv.exe",
"args": ["interactive-feedback@latest"],
"timeout": 600,
"autoApprove": ["interactive_feedback"]
}
}
}
```
### MCP配置问题
**问题**:AI助手无法识别或启动服务。
**解决方案**:
1. **验证JSON格式**:确保配置文件语法正确
2. **检查文件位置**:确认 `mcp_servers.json` 在正确目录
3. **重启AI助手**:修改配置后重启应用程序
4. **询问AI助手**:将配置文件内容提供给AI,请求配置建议
**示例**:在Cursor中询问:"我在配置MCP服务时遇到问题,请帮我检查这个配置:[粘贴您的配置]"
详细的故障排除指南请参阅 [安装与配置指南.md](./安装与配置指南.md#故障排除)。
## 🙏 致谢
- 原始概念和初步开发由 Fábio Ferreira ([@fabiomlferreira](https://x.com/fabiomlferreira)) 完成。
- 由 pawa ([@pawaovo](https://github.com/pawaovo)) 进行了功能增强,并借鉴了 [interactive-feedback-mcp](https://github.com/noopstudios/interactive-feedback-mcp) 项目中的一些想法。
- 当前版本由 pawaovo 维护和进一步开发。
## 📄 许可证
此项目使用 MIT 许可证。详情请参阅 `LICENSE` 文件。
Raw data
{
"_id": null,
"home_page": null,
"name": "interactive-feedback",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "mcp, ai, feedback, interactive, cursor, claude",
"author": "F\u00e1bio Ferreira, Pau Oliva",
"author_email": "pawa <pawaovo@example.com>",
"download_url": "https://files.pythonhosted.org/packages/16/ec/0e03fd8121ff09d11fbd578222f477a2ae4ddcc6f0a0cff16c80f7af1349/interactive_feedback-2.5.9.12.tar.gz",
"platform": null,
"description": "#  Interactive Feedback MCP\r\n\r\n\u4e00\u4e2a\u7b80\u5355\u7684 [MCP Server](https://modelcontextprotocol.io/)\uff0c\u7528\u4e8e\u5728AI\u8f85\u52a9\u5f00\u53d1\u5de5\u5177\uff08\u5982 [Cursor](https://www.cursor.com)\u3001[Cline](https://cline.bot) \u3001 [Windsurf](https://windsurf.com)\uff09\u548c[Augment]\u63d2\u4ef6\u4e2d\u5b9e\u73b0\u4eba\u673a\u534f\u4f5c\u5de5\u4f5c\u6d41\u3002\u8be5\u670d\u52a1\u5668\u5141\u8bb8\u60a8\u8f7b\u677e\u5730\u76f4\u63a5\u5411AI\u4ee3\u7406\u63d0\u4f9b\u53cd\u9988\uff0c\u8ba9AI\u4e0e\u60a8\u4e4b\u95f4\u66f4\u597d\u5730\u534f\u4f5c\u3002\r\n\r\n**\u8be6\u7ec6\u4fe1\u606f\u8bf7\u53c2\u9605\uff1a**\r\n* [\u529f\u80fd\u8bf4\u660e.md](./\u529f\u80fd\u8bf4\u660e.md) - \u4e86\u89e3\u672c\u670d\u52a1\u63d0\u4f9b\u7684\u5404\u9879\u529f\u80fd\u3002\r\n* [\u5b89\u88c5\u4e0e\u914d\u7f6e\u6307\u5357.md](./\u5b89\u88c5\u4e0e\u914d\u7f6e\u6307\u5357.md) - \u83b7\u53d6\u8be6\u7ec6\u7684\u5b89\u88c5\u548c\u8bbe\u7f6e\u6b65\u9aa4\u3002\r\n\r\n**\u6ce8\u610f\uff1a** \u6b64\u670d\u52a1\u5668\u8bbe\u8ba1\u4e3a\u4e0eMCP\u5ba2\u6237\u7aef\uff08\u4f8b\u5982Cursor\u3001VS Code\uff09\u5728\u672c\u5730\u4e00\u540c\u8fd0\u884c\uff0c\u56e0\u4e3a\u5b83\u9700\u8981\u76f4\u63a5\u8bbf\u95ee\u7528\u6237\u7684\u64cd\u4f5c\u7cfb\u7edf\u4ee5\u663e\u793aUI\u548c\u6267\u884c\u952e\u76d8/\u9f20\u6807\u64cd\u4f5c\u3002\r\n\r\n## \ud83d\uddbc\ufe0f \u793a\u4f8b\r\n\r\n\r\n\r\n\r\n\r\n*(\u8bf7\u6ce8\u610f\uff0c\u793a\u4f8b\u56fe\u7247\u53ef\u80fd\u672a\u53cd\u6620\u6700\u65b0\u7684UI\u8c03\u6574\uff0c\u4f46\u6838\u5fc3\u4ea4\u4e92\u6d41\u7a0b\u4fdd\u6301\u4e0d\u53d8)*\r\n\r\n## \ud83d\udca1 \u4e3a\u4f55\u4f7f\u7528\u6b64\u5de5\u5177\uff1f\r\n\r\n1.\u5728\u50cfCursor\u8fd9\u6837\u7684\u73af\u5883\u4e2d\uff0c\u60a8\u53d1\u9001\u7ed9LLM\u7684\u6bcf\u4e2a\u63d0\u793a\u90fd\u88ab\u89c6\u4e3a\u4e00\u4e2a\u72ec\u7acb\u7684\u8bf7\u6c42\u2014\u2014\u6bcf\u4e2a\u8bf7\u6c42\u90fd\u4f1a\u8ba1\u5165\u60a8\u7684\u6bcf\u6708\u9650\u989d\uff08\u4f8b\u5982\uff0c500\u4e2a\u9ad8\u7ea7\u8bf7\u6c42\uff09\u3002\u5f53\u60a8\u8fed\u4ee3\u6a21\u7cca\u6307\u4ee4\u6216\u7ea0\u6b63\u88ab\u8bef\u89e3\u7684\u8f93\u51fa\u65f6\uff0c\u8fd9\u4f1a\u53d8\u5f97\u6548\u7387\u4f4e\u4e0b\uff0c\u56e0\u4e3a\u6bcf\u6b21\u540e\u7eed\u6f84\u6e05\u90fd\u4f1a\u89e6\u53d1\u4e00\u4e2a\u5168\u65b0\u7684\u8bf7\u6c42\u3002\r\n\r\n\u6b64MCP\u670d\u52a1\u5668\u5f15\u5165\u4e86\u4e00\u79cd\u53d8\u901a\u65b9\u6cd5\uff1a\u5b83\u5141\u8bb8\u6a21\u578b\u5728\u6700\u7ec8\u786e\u5b9a\u54cd\u5e94\u4e4b\u524d\u6682\u505c\u5e76\u8bf7\u6c42\u6f84\u6e05\u3002\u6a21\u578b\u4e0d\u4f1a\u76f4\u63a5\u5b8c\u6210\u8bf7\u6c42\uff0c\u800c\u662f\u89e6\u53d1\u4e00\u4e2a\u5de5\u5177\u8c03\u7528 (`interactive_feedback`)\uff0c\u6253\u5f00\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u53cd\u9988\u7a97\u53e3\u3002\u7136\u540e\uff0c\u60a8\u53ef\u4ee5\u63d0\u4f9b\u66f4\u591a\u7ec6\u8282\u6216\u8981\u6c42\u66f4\u6539\u2014\u2014\u6a21\u578b\u4f1a\u7ee7\u7eed\u4f1a\u8bdd\uff0c\u6240\u6709\u8fd9\u4e9b\u90fd\u5728\u5355\u4e2a\u8bf7\u6c42\u5185\u5b8c\u6210\u3002\r\n\r\n\u4ece\u672c\u8d28\u4e0a\u8bb2\uff0c\u8fd9\u53ea\u662f\u5de7\u5999\u5730\u5229\u7528\u5de5\u5177\u8c03\u7528\u6765\u63a8\u8fdf\u8bf7\u6c42\u7684\u5b8c\u6210\u3002\u7531\u4e8e\u5de5\u5177\u8c03\u7528\u4e0d\u8ba1\u4e3a\u5355\u72ec\u7684\u9ad8\u7ea7\u4ea4\u4e92\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5728\u4e0d\u6d88\u8017\u989d\u5916\u8bf7\u6c42\u7684\u60c5\u51b5\u4e0b\u5faa\u73af\u6267\u884c\u591a\u4e2a\u53cd\u9988\u5468\u671f\u3002\r\n\r\n\u7b80\u800c\u8a00\u660e\uff0c\u8fd9\u6709\u52a9\u4e8e\u60a8\u7684AI\u52a9\u624b\u5728\u731c\u6d4b\u4e4b\u524d\u8bf7\u6c42\u6f84\u6e05\uff0c\u800c\u4e0d\u4f1a\u6d6a\u8d39\u53e6\u4e00\u4e2a\u8bf7\u6c42\u3002\u8fd9\u610f\u5473\u7740\u66f4\u5c11\u7684\u9519\u8bef\u7b54\u6848\u3001\u66f4\u597d\u7684\u6027\u80fd\u548c\u66f4\u5c11\u7684API\u4f7f\u7528\u6d6a\u8d39\u3002\r\n\r\n2.\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u53ef\u66ff\u4ee3\u539f\u6709\u7684IDA\u5bf9\u8bdd\u680f\uff0c\u76f4\u63a5\u4f7f\u7528MCP\u670d\u52a1\u4e0eAI\u5bf9\u8bdd\r\n\r\n- **\ud83d\udcb0 \u51cf\u5c11\u9ad8\u7ea7API\u8c03\u7528\uff1a** \u907f\u514d\u6d6a\u8d39\u6602\u8d35\u7684API\u8c03\u7528\u6765\u57fa\u4e8e\u731c\u6d4b\u751f\u6210\u4ee3\u7801\u3002\r\n- **\u2705 \u66f4\u5c11\u9519\u8bef\uff1a** \u884c\u52a8\u524d\u7684\u6f84\u6e05\u610f\u5473\u7740\u66f4\u5c11\u7684\u9519\u8bef\u4ee3\u7801\u548c\u65f6\u95f4\u6d6a\u8d39\u3002\r\n- **\u23f1\ufe0f \u66f4\u5feb\u5468\u671f\uff1a** \u5feb\u901f\u786e\u8ba4\u80dc\u8fc7\u8c03\u8bd5\u9519\u8bef\u7684\u731c\u6d4b\u3002\r\n- **\ud83c\udfae \u66f4\u597d\u534f\u4f5c\uff1a** \u5c06\u5355\u5411\u6307\u4ee4\u8f6c\u53d8\u4e3a\u5bf9\u8bdd\uff0c\u8ba9\u60a8\u4fdd\u6301\u63a7\u5236\u3002\r\n\r\n## \ud83c\udf1f \u6838\u5fc3\u529f\u80fd\u4e0e\u4f7f\u7528\u6280\u5de7\r\n\r\n### \u5904\u7406\u56fe\u7247\r\n- **\u7c98\u8d34\uff1a** \u5728\u53cd\u9988\u7a97\u53e3\u7684\u6587\u672c\u8f93\u5165\u6846\u4e2d\u6309 `Ctrl+V` (\u6216 `Cmd+V`) \u7c98\u8d34\u56fe\u7247\u3002\u60a8\u53ef\u4ee5\u540c\u65f6\u7c98\u8d34\u591a\u5f20\u56fe\u7247\u548c\u6587\u672c\u3002\r\n- **\u62d6\u62fd\uff1a** \u76f4\u63a5\u4ece\u6587\u4ef6\u7ba1\u7406\u5668\u62d6\u62fd\u56fe\u7247\u6587\u4ef6\u5230\u6587\u672c\u8f93\u5165\u6846\u4e2d\u3002\r\n- **\u9009\u62e9\uff1a** \u70b9\u51fb\"\u9009\u62e9\u6587\u4ef6\"\u6309\u94ae\uff0c\u901a\u8fc7\u6587\u4ef6\u5bf9\u8bdd\u6846\u9009\u62e9\u56fe\u7247\u6587\u4ef6\u3002\r\n- **\u56fe\u7247\u9884\u89c8\uff1a** \u6dfb\u52a0\u7684\u56fe\u7247\u4f1a\u5728\u8f93\u5165\u6846\u4e0b\u65b9\u663e\u793a\u53ef\u70b9\u51fb\u7684\u7f29\u7565\u56fe\u9884\u89c8\u3002\u70b9\u51fb\u7f29\u7565\u56fe\u53ef\u4ee5\u79fb\u9664\u5bf9\u5e94\u7684\u56fe\u7247\u3002\r\n\r\n### \u6587\u4ef6\u5f15\u7528\r\n- **\u62d6\u62fd\u6587\u4ef6\uff1a** \u5c06\u4efb\u610f\u6587\u4ef6\u4ece\u6587\u4ef6\u7ba1\u7406\u5668\u62d6\u62fd\u5230\u6587\u672c\u8f93\u5165\u6846\uff0c\u4f1a\u751f\u6210\u84dd\u8272\u7684\u6587\u4ef6\u5f15\u7528\uff08\u5982 `@\u6587\u4ef6\u540d.txt`\uff09\u3002\r\n- **\u9009\u62e9\u6587\u4ef6\uff1a** \u70b9\u51fb\"\u9009\u62e9\u6587\u4ef6\"\u6309\u94ae\u9009\u62e9\u591a\u4e2a\u6587\u4ef6\uff0c\u652f\u6301\u56fe\u7247\u548c\u666e\u901a\u6587\u4ef6\u7684\u6df7\u5408\u9009\u62e9\u3002\r\n- **\u667a\u80fd\u5904\u7406\uff1a** \u7cfb\u7edf\u81ea\u52a8\u8bc6\u522b\u56fe\u7247\u6587\u4ef6\u548c\u666e\u901a\u6587\u4ef6\uff0c\u5206\u522b\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u548c\u663e\u793a\u3002\r\n\r\n### \u5e38\u7528\u8bed\r\n- **hover\u9884\u89c8\uff1a** \u9f20\u6807\u60ac\u505c\u5728\"\u5e38\u7528\u8bed\"\u6309\u94ae\u4e0a\u53ef\u5feb\u901f\u9884\u89c8\u6240\u6709\u5e38\u7528\u8bed\uff0c\u652f\u6301\u6eda\u52a8\u67e5\u770b\u3002\r\n- **\u5feb\u901f\u63d2\u5165\uff1a** \u5728\u9884\u89c8\u7a97\u53e3\u4e2d\u70b9\u51fb\u5e38\u7528\u8bed\u53ef\u76f4\u63a5\u63d2\u5165\u5230\u8f93\u5165\u6846\uff0c\u65e0\u9700\u6253\u5f00\u7ba1\u7406\u5bf9\u8bdd\u6846\u3002\r\n- **\u7ba1\u7406\uff1a** \u70b9\u51fb\"\u5e38\u7528\u8bed\"\u6309\u94ae\u6253\u5f00\u7ba1\u7406\u5bf9\u8bdd\u6846\uff0c\u53ef\u4ee5\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u548c\u6392\u5e8f\u5e38\u7528\u8bed\u3002\r\n\r\n\r\n\r\n### \u6587\u672c\u4f18\u5316\u548c\u589e\u5f3a\r\n- **\u4e00\u952e\u4f18\u5316\uff1a** \u70b9\u51fb\"\u4f18\u5316\"\u6309\u94ae\u5c06\u53e3\u8bed\u5316\u8f93\u5165\u8f6c\u6362\u4e3a\u7ed3\u6784\u5316\u6307\u4ee4\uff0c\u63d0\u9ad8AI\u7406\u89e3\u51c6\u786e\u6027\u3002\r\n- **\u81ea\u5b9a\u4e49\u589e\u5f3a\uff1a** \u70b9\u51fb\"\u589e\u5f3a\"\u6309\u94ae\uff0c\u53ef\u4f7f\u7528\u81ea\u5b9a\u4e49\u63d0\u793a\u8bcd\u5bf9\u6587\u672c\u8fdb\u884c\u7279\u5b9a\u5904\u7406\u3002\r\n- **API\u914d\u7f6e\uff1a** \u5728\u8bbe\u7f6e\u9875\u9762\u914d\u7f6eOpenAI\u3001Gemini\u3001DeepSeek\u7b49AI\u63d0\u4f9b\u5546\u7684API\u5bc6\u94a5\u3002\r\n- **\u64a4\u9500\u529f\u80fd\uff1a** \u4f18\u5316\u540e\u53ef\u4f7f\u7528Ctrl+Z\u64a4\u9500\uff0c\u6062\u590d\u539f\u59cb\u6587\u672c\u5185\u5bb9\u3002\r\n\r\n### \u7a97\u53e3\u622a\u56fe\r\n- **\u77e9\u5f62\u622a\u56fe\uff1a** \u70b9\u51fb\u622a\u56fe\u6309\u94ae\u540e\uff0cUI\u7a97\u53e3\u81ea\u52a8\u6700\u5c0f\u5316\uff0c\u53ef\u8fdb\u884c\u77e9\u5f62\u533a\u57df\u9009\u62e9\u622a\u56fe\u3002\r\n- **\u81ea\u52a8\u96c6\u6210\uff1a** \u622a\u56fe\u5b8c\u6210\u540e\u81ea\u52a8\u6dfb\u52a0\u5230\u8f93\u5165\u5185\u5bb9\u4e2d\uff0c\u4e0e\u56fe\u7247\u529f\u80fd\u65e0\u7f1d\u96c6\u6210\u3002\r\n- **\u5b9e\u65f6\u9884\u89c8\uff1a** \u622a\u56fe\u9009\u62e9\u8fc7\u7a0b\u4e2d\u63d0\u4f9b\u5b9e\u65f6\u7684\u9009\u62e9\u533a\u57df\u9884\u89c8\u6548\u679c\u3002\r\n\r\n### \u754c\u9762\u5e03\u5c40\r\n- **\u5e03\u5c40\u5207\u6362\uff1a** \u5728\u8bbe\u7f6e\u9875\u9762\u53ef\u4ee5\u9009\u62e9\u5782\u76f4\u5e03\u5c40\uff08\u4e0a\u4e0b\u5206\u5e03\uff09\u6216\u6c34\u5e73\u5e03\u5c40\uff08\u5de6\u53f3\u5206\u5e03\uff09\u3002\r\n- **\u5206\u5272\u5668\u62d6\u62fd\uff1a** \u62d6\u62fd\u5206\u5272\u5668\u624b\u67c4\u53ef\u4ee5\u8c03\u6574\u5404\u533a\u57df\u7684\u5927\u5c0f\uff0c\u53cc\u51fb\u5206\u5272\u5668\u53ef\u91cd\u7f6e\u4e3a\u9ed8\u8ba4\u6bd4\u4f8b\u3002\r\n- **\u72b6\u6001\u4fdd\u5b58\uff1a** \u5e03\u5c40\u9009\u62e9\u548c\u5206\u5272\u5668\u4f4d\u7f6e\u4f1a\u81ea\u52a8\u4fdd\u5b58\uff0c\u4e0b\u6b21\u542f\u52a8\u65f6\u6062\u590d\u3002\r\n\r\n### \u663e\u793a\u6a21\u5f0f\u914d\u7f6e\r\n- **\u7b80\u5355\u6a21\u5f0f\uff1a** \u663e\u793aAI\u5904\u7406\u540e\u7684\u7b80\u6d01\u95ee\u9898\uff0c\u9002\u5408\u5feb\u901f\u4ea4\u4e92\u3002\r\n- **\u5b8c\u6574\u6a21\u5f0f\uff1a** \u663e\u793aAI\u7684\u539f\u59cb\u5b8c\u6574\u56de\u590d\u5185\u5bb9\uff0c\u9002\u5408\u8be6\u7ec6\u67e5\u770b\u3002\r\n- **\u52a8\u6001\u5207\u6362\uff1a** \u53ef\u5728\u8bbe\u7f6e\u9875\u9762\u5b9e\u65f6\u5207\u6362\u663e\u793a\u6a21\u5f0f\uff0c\u7acb\u5373\u751f\u6548\u3002\r\n\r\n## \ud83d\udee0\ufe0f \u5de5\u5177\r\n\r\n\u6b64\u670d\u52a1\u5668\u901a\u8fc7\u6a21\u578b\u4e0a\u4e0b\u6587\u534f\u8bae (MCP) \u516c\u5f00\u4ee5\u4e0b\u5de5\u5177\uff1a\r\n\r\n### `interactive_feedback`\r\n- **\u529f\u80fd\uff1a** \u5411\u7528\u6237\u53d1\u8d77\u4ea4\u4e92\u5f0f\u4f1a\u8bdd\uff0c\u663e\u793a\u63d0\u793a\u4fe1\u606f\uff0c\u63d0\u4f9b\u53ef\u9009\u9009\u9879\uff0c\u5e76\u6536\u96c6\u7528\u6237\u7684\u6587\u672c\u3001\u56fe\u7247\u548c\u6587\u4ef6\u5f15\u7528\u53cd\u9988\u3002\u652f\u6301\u591a\u79cd\u4ea4\u4e92\u65b9\u5f0f\u5305\u62ec\u6587\u672c\u8f93\u5165\u3001\u56fe\u7247\u7c98\u8d34/\u62d6\u62fd\u3001\u6587\u4ef6\u62d6\u62fd/\u9009\u62e9\u7b49\u3002\r\n- **\u53c2\u6570\uff1a**\r\n - `message` (str, \u53ef\u9009): \u7b80\u5355\u6a21\u5f0f\u4e0b\u663e\u793a\u7684\u7b80\u6d01\u95ee\u9898\u6216\u63d0\u793a\r\n - `full_response` (str, \u53ef\u9009): \u5b8c\u6574\u6a21\u5f0f\u4e0b\u663e\u793a\u7684AI\u539f\u59cb\u5b8c\u6574\u56de\u590d\u5185\u5bb9\r\n - `predefined_options` (List[str], \u53ef\u9009): \u4e00\u4e2a\u5b57\u7b26\u4e32\u5217\u8868\uff0c\u6bcf\u4e2a\u5b57\u7b26\u4e32\u4ee3\u8868\u4e00\u4e2a\u7528\u6237\u53ef\u4ee5\u9009\u62e9\u7684\u9884\u5b9a\u4e49\u9009\u9879\u3002\u5982\u679c\u63d0\u4f9b\uff0c\u8fd9\u4e9b\u9009\u9879\u4f1a\u663e\u793a\u4e3a\u590d\u9009\u6846\u3002\r\n- **\u667a\u80fd\u56de\u9000\u673a\u5236\uff1a**\r\n - **\u7b80\u5355\u6a21\u5f0f**\uff1a\u4f18\u5148\u4f7f\u7528 `message` \u53c2\u6570\uff0c\u5982\u679c\u4e3a\u7a7a\u5219\u81ea\u52a8\u56de\u9000\u5230 `full_response`\r\n - **\u5b8c\u6574\u6a21\u5f0f**\uff1a\u4f18\u5148\u4f7f\u7528 `full_response` \u53c2\u6570\uff0c\u5982\u679c\u4e3a\u7a7a\u5219\u81ea\u52a8\u56de\u9000\u5230 `message`\r\n - **\u5b9e\u65f6\u6a21\u5f0f\u68c0\u6d4b**\uff1a\u6bcf\u6b21\u8c03\u7528\u90fd\u8bfb\u53d6\u6700\u65b0\u7684\u7528\u6237\u6a21\u5f0f\u914d\u7f6e\uff0c\u652f\u6301\u52a8\u6001\u5207\u6362\r\n - **\u9519\u8bef\u5904\u7406**\uff1a\u53ea\u6709\u5f53\u4e24\u4e2a\u53c2\u6570\u90fd\u4e3a\u7a7a\u65f6\u624d\u8fd4\u56de\u9519\u8bef\uff0c\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u8c03\u7528\u5931\u8d25\r\n- **\u7528\u6237\u4ea4\u4e92\u65b9\u5f0f\uff1a**\r\n - **\u6587\u672c\u8f93\u5165**\uff1a\u5728\u4e3b\u8f93\u5165\u6846\u4e2d\u8f93\u5165\u53cd\u9988\u6587\u672c\r\n - **\u56fe\u7247\u5904\u7406**\uff1a\u901a\u8fc7Ctrl+V\u7c98\u8d34\u6216\u62d6\u62fd\u56fe\u7247\u6587\u4ef6\r\n - **\u6587\u4ef6\u5f15\u7528**\uff1a\u901a\u8fc7\u62d6\u62fd\u6587\u4ef6\u6216\u70b9\u51fb\"\u9009\u62e9\u6587\u4ef6\"\u6309\u94ae\u6dfb\u52a0\u6587\u4ef6\u5f15\u7528\r\n - **\u5e38\u7528\u8bed**\uff1a\u901a\u8fc7hover\u9884\u89c8\u6216\u7ba1\u7406\u5bf9\u8bdd\u6846\u5feb\u901f\u63d2\u5165\u9884\u8bbe\u77ed\u8bed\r\n\r\n - **\u5e03\u5c40\u8c03\u6574**\uff1a\u901a\u8fc7\u62d6\u62fd\u5206\u5272\u5668\u8c03\u6574\u754c\u9762\u5e03\u5c40\r\n - **\u6587\u672c\u4f18\u5316**\uff1a\u901a\u8fc7\u4f18\u5316\u548c\u589e\u5f3a\u6309\u94ae\u5904\u7406\u8f93\u5165\u6587\u672c\r\n - **\u7a97\u53e3\u622a\u56fe**\uff1a\u901a\u8fc7\u622a\u56fe\u6309\u94ae\u8fdb\u884c\u77e9\u5f62\u9009\u62e9\u622a\u56fe\r\n- **\u8fd4\u56de\u7ed9AI\u52a9\u624b\u7684\u6570\u636e\u683c\u5f0f\uff1a**\r\n \u8be5\u5de5\u5177\u4f1a\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u7ed3\u6784\u5316\u53cd\u9988\u5185\u5bb9\u7684\u5143\u7ec4 (Tuple)\u3002\u5143\u7ec4\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u53ef\u4ee5\u662f\u5b57\u7b26\u4e32 (\u6587\u672c\u53cd\u9988\u6216\u6587\u4ef6\u5f15\u7528\u4fe1\u606f) \u6216 `fastmcp.Image` \u5bf9\u8c61 (\u56fe\u7247\u53cd\u9988)\u3002\r\n \u5177\u4f53\u6765\u8bf4\uff0c\u4eceUI\u6536\u96c6\u5230\u7684\u6570\u636e\u4f1a\u8f6c\u6362\u6210\u4ee5\u4e0b `content` \u9879\u5217\u8868\uff0c\u5e76\u7531 MCP \u670d\u52a1\u5668\u8fdb\u4e00\u6b65\u5904\u7406\u6210 FastMCP\u517c\u5bb9\u7684\u5143\u7ec4\uff1a\r\n ```json\r\n // UI\u8fd4\u56de\u7ed9MCP\u670d\u52a1\u5668\u7684\u539f\u59cbJSON\u7ed3\u6784\u793a\u4f8b\r\n {\r\n \"content\": [\r\n {\"type\": \"text\", \"text\": \"\u7528\u6237\u7684\u6587\u672c\u53cd\u9988...\"},\r\n {\"type\": \"image\", \"data\": \"base64_encoded_image_data\", \"mimeType\": \"image/jpeg\"},\r\n {\"type\": \"file_reference\", \"display_name\": \"@example.txt\", \"path\": \"/path/to/local/example.txt\"}\r\n // ... \u53ef\u80fd\u6709\u66f4\u591a\u9879\r\n ]\r\n }\r\n ```\r\n * **\u6587\u672c\u5185\u5bb9** (`type: \"text\"`)\uff1a\u5305\u542b\u7528\u6237\u8f93\u5165\u7684\u6587\u672c\u548c/\u6216\u9009\u4e2d\u7684\u9884\u5b9a\u4e49\u9009\u9879\u7ec4\u5408\u6587\u672c\u3002\r\n * **\u56fe\u7247\u5185\u5bb9** (`type: \"image\"`)\uff1a\u5305\u542b Base64 \u7f16\u7801\u540e\u7684\u56fe\u7247\u6570\u636e\u548c\u56fe\u7247\u7684 MIME \u7c7b\u578b (\u5982 `image/jpeg`)\u3002\u8fd9\u4e9b\u5728 MCP \u670d\u52a1\u5668\u4e2d\u4f1a\u88ab\u8f6c\u6362\u4e3a `fastmcp.Image` \u5bf9\u8c61\u3002\r\n * **\u6587\u4ef6\u5f15\u7528** (`type: \"file_reference\"`)\uff1a\u5305\u542b\u7528\u6237\u62d6\u62fd\u6216\u9009\u62e9\u7684\u6587\u4ef6\u7684\u663e\u793a\u540d (\u5982 `@filename.txt`) \u548c\u5176\u5728\u7528\u6237\u672c\u5730\u7684\u5b8c\u6574\u8def\u5f84\u3002\u8fd9\u4e9b\u4fe1\u606f\u901a\u5e38\u4f1a\u4f5c\u4e3a\u6587\u672c\u5b57\u7b26\u4e32\u4f20\u9012\u7ed9AI\u52a9\u624b\u3002\r\n\r\n **\u6ce8\u610f\uff1a**\r\n * \u5373\u4fbf\u6ca1\u6709\u4efb\u4f55\u7528\u6237\u8f93\u5165\uff08\u4f8b\u5982\u7528\u6237\u76f4\u63a5\u5173\u95ed\u53cd\u9988\u7a97\u53e3\uff09\uff0c\u5de5\u5177\u4e5f\u4f1a\u8fd4\u56de\u4e00\u4e2a\u8868\u793a\"\u65e0\u53cd\u9988\"\u7684\u7279\u5b9a\u6d88\u606f\uff0c\u5982 `(\"[User provided no feedback]\",)`\u3002\r\n\r\n### `optimize_user_input`\r\n- **\u529f\u80fd\uff1a** \u4f7f\u7528\u914d\u7f6e\u7684LLM API\u6765\u4f18\u5316\u6216\u589e\u5f3a\u7528\u6237\u8f93\u5165\u7684\u6587\u672c\uff0c\u5c06\u53e3\u8bed\u5316\u3001\u53ef\u80fd\u5b58\u5728\u6b67\u4e49\u7684\u8f93\u5165\u8f6c\u5316\u4e3a\u66f4\u7ed3\u6784\u5316\u3001\u66f4\u6e05\u6670\u3001\u66f4\u4fbf\u4e8eAI\u6a21\u578b\u7406\u89e3\u7684\u6587\u672c\u3002\r\n- **\u53c2\u6570\uff1a**\r\n - `original_text` (str): **\u5fc5\u987b\u53c2\u6570**\u3002\u7528\u6237\u7684\u539f\u59cb\u8f93\u5165\u6587\u672c\r\n - `mode` (str): **\u5fc5\u987b\u53c2\u6570**\u3002\u4f18\u5316\u6a21\u5f0f\uff1a\r\n - `'optimize'`: \u4e00\u952e\u4f18\u5316\uff0c\u4f7f\u7528\u9884\u8bbe\u7684\u901a\u7528\u4f18\u5316\u6307\u4ee4\r\n - `'reinforce'`: \u63d0\u793a\u8bcd\u5f3a\u5316\uff0c\u4f7f\u7528\u7528\u6237\u81ea\u5b9a\u4e49\u7684\u5f3a\u5316\u6307\u4ee4\r\n - `reinforcement_prompt` (str, \u53ef\u9009): \u5728 'reinforce' \u6a21\u5f0f\u4e0b\u7528\u6237\u7684\u81ea\u5b9a\u4e49\u6307\u4ee4\r\n- **\u652f\u6301\u7684AI\u63d0\u4f9b\u5546\uff1a**\r\n - **OpenAI**: GPT-4o-mini \u7b49\u6a21\u578b\r\n - **Google Gemini**: Gemini-2.0-flash \u7b49\u6a21\u578b\r\n - **DeepSeek**: DeepSeek-chat \u7b49\u6a21\u578b\r\n - **\u706b\u5c71\u5f15\u64ce**: DeepSeek-v3 \u7b49\u6a21\u578b\r\n- **\u8fd4\u56de\uff1a** \u4f18\u5316\u540e\u7684\u6587\u672c\u5185\u5bb9\u6216\u9519\u8bef\u4fe1\u606f\r\n\r\n## \ud83d\udce6 \u5b89\u88c5\r\n\r\n### \u65b9\u5f0f\u4e00\uff1a\u76f4\u63a5\u4ecePyPI\u5b89\u88c5\uff08\u63a8\u8350\uff09\r\n\r\n**\u4f7f\u7528uvx\uff08\u63a8\u8350\uff09\uff1a**\r\n```bash\r\n# \u76f4\u63a5\u8fd0\u884c\uff0c\u65e0\u9700\u5b89\u88c5\r\nuvx interactive-feedback@latest\r\n\r\n# \u5982\u679c\u9996\u6b21\u5b89\u88c5\u5931\u8d25\uff08\u901a\u5e38\u7531\u4e8ePySide6\u7b49\u5927\u5305\u4e0b\u8f7d\u8d85\u65f6\uff09\uff0c\u53ef\u4ee5\u9884\u5b89\u88c5\uff1a\r\nuv tool install interactive-feedback@latest\r\n```\r\n\r\n**\u4f7f\u7528pip\uff1a**\r\n```bash\r\npip install interactive-feedback\r\n```\r\n\r\n**\u5f53\u524d\u7248\u672c\uff1a** v2.5.9.11 - \u91c7\u7528\u589e\u5f3a\u5185\u8054\u6837\u5f0f\u5f7b\u5e95\u89e3\u51b3uv\u73af\u5883\u5185\u8054\u4ee3\u7801\u663e\u793a\u95ee\u9898\uff0c\u786e\u4fdd\u5b8c\u5168\u517c\u5bb9\r\n\r\n### \u65b9\u5f0f\u4e8c\uff1a\u5f00\u53d1\u5b89\u88c5\r\n\r\n1. **\u5148\u51b3\u6761\u4ef6\uff1a**\r\n * Python 3.11 \u6216\u66f4\u65b0\u7248\u672c\u3002\r\n * [uv](https://github.com/astral-sh/uv) (\u4e00\u4e2a\u5feb\u901f\u7684Python\u5305\u5b89\u88c5\u548c\u89e3\u6790\u5de5\u5177)\u3002\u6309\u4ee5\u4e0b\u65b9\u5f0f\u5b89\u88c5\uff1a\r\n * Windows: `pip install uv`\r\n * Linux/macOS: `curl -LsSf https://astral.sh/uv/install.sh | sh`\r\n * \u6216\u8005\u53c2\u8003 `uv` \u5b98\u65b9\u6587\u6863\u83b7\u53d6\u5176\u4ed6\u5b89\u88c5\u65b9\u5f0f\u3002\r\n\r\n2. **\u83b7\u53d6\u4ee3\u7801\uff1a**\r\n * \u514b\u9686\u6b64\u4ed3\u5e93\uff1a\r\n `git clone https://github.com/pawaovo/interactive-feedback-mcp.git`\r\n * \u6216\u8005\u4e0b\u8f7d\u6e90\u4ee3\u7801\u538b\u7f29\u5305\u5e76\u89e3\u538b\u3002\r\n\r\n3. **\u5b89\u88c5\u4f9d\u8d56\uff1a**\r\n * \u8fdb\u5165\u4ed3\u5e93\u76ee\u5f55 (`cd interactive-feedback-mcp`)\u3002\r\n * \u8fd0\u884c\uff1a\r\n `uv pip install -r requirements.txt`\r\n * **\u56fe\u7247\u652f\u6301\u7684\u989d\u5916\u4f9d\u8d56\uff1a** \u4e3a\u4e86\u4f7f\u56fe\u7247\u7c98\u8d34\u6b63\u5e38\u5de5\u4f5c\uff0c\u8fd8\u9700\u8981\u4ee5\u4e0b\u5305\uff1a\r\n `pyperclip`, `Pillow`\u3002\r\n \u5728Windows\u4e0a\uff0c\u8fd8\u9700\u8981 `pywin32`\u3002\r\n \u8fd9\u4e9b\u901a\u5e38\u53ef\u4ee5\u901a\u8fc7 `uv pip install pyperclip Pillow pywin32` (Windows) \u6216 `uv pip install pyperclip Pillow` (\u5176\u4ed6\u7cfb\u7edf) \u6765\u5b89\u88c5\u3002`requirements.txt` \u5df2\u5305\u542b\u8fd9\u4e9b\u3002\r\n\r\n## \u2699\ufe0f \u914d\u7f6e\r\n\r\n### \u65b9\u5f0f\u4e00\uff1a\u4f7f\u7528uvx\uff08\u63a8\u8350\uff09\r\n\r\n\u5c06\u4ee5\u4e0b\u914d\u7f6e\u6dfb\u52a0\u5230\u60a8\u7684 `claude_desktop_config.json` (Claude Desktop) \u6216 `mcp_servers.json` (Cursor, \u901a\u5e38\u5728 `.cursor-ai/mcp_servers.json` \u6216\u7528\u6237\u914d\u7f6e\u76ee\u5f55\u4e2d)\uff1a\r\n\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"interactive-feedback\": {\r\n \"command\": \"uvx\",\r\n \"args\": [\r\n \"interactive-feedback@latest\"\r\n ],\r\n \"timeout\": 600,\r\n \"autoApprove\": [\r\n \"interactive_feedback\"\r\n ]\r\n }\r\n }\r\n}\r\n```\r\n\r\n**\u5982\u679c\u9884\u5b89\u88c5\u4e86\u5de5\u5177\uff0c\u53ef\u4ee5\u7b80\u5316\u914d\u7f6e\uff08\u540e\u7eed\u518d\u6539\u4e3a\"interactive-feedback@latest\"\uff09\uff1a**\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"interactive-feedback\": {\r\n \"command\": \"uvx\",\r\n \"args\": [\r\n \"interactive-feedback\"\r\n ],\r\n \"timeout\": 600,\r\n \"autoApprove\": [\r\n \"interactive_feedback\"\r\n ]\r\n }\r\n }\r\n}\r\n```\r\n\r\n### \u63a8\u8350\u914d\u7f6e\u65b9\u5f0f\uff1auvx + UI \u8bbe\u7f6e\r\n\r\n**MCP JSON \u4e2d\u4ec5\u914d\u7f6e\u670d\u52a1\uff0cAPI key \u901a\u8fc7 UI \u8bbe\u7f6e\u9875\u9762\u7ba1\u7406\uff1a**\r\n\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"interactive-feedback\": {\r\n \"command\": \"uvx\",\r\n \"args\": [\r\n \"interactive-feedback@latest\"\r\n ],\r\n \"timeout\": 600,\r\n \"autoApprove\": [\r\n \"interactive_feedback\"\r\n ]\r\n }\r\n }\r\n}\r\n```\r\n\r\n**\u4f18\u52bf\uff1a**\r\n- \u2705 **\u96f6\u5b89\u88c5**\uff1a\u65e0\u9700\u624b\u52a8\u5b89\u88c5\u4efb\u4f55\u4f9d\u8d56\r\n- \u2705 **\u81ea\u52a8\u66f4\u65b0**\uff1a\u603b\u662f\u4f7f\u7528\u6700\u65b0\u7248\u672c\r\n- \u2705 **\u7075\u6d3b\u914d\u7f6e**\uff1aAPI key \u901a\u8fc7 UI \u754c\u9762\u7ba1\u7406\r\n- \u2705 **\u591a\u63d0\u4f9b\u5546**\uff1a\u652f\u6301\u591a\u4e2a AI \u63d0\u4f9b\u5546\u914d\u7f6e\u548c\u5207\u6362\r\n- \u2705 **\u7528\u6237\u53cb\u597d**\uff1a\u76f4\u89c2\u7684\u56fe\u5f62\u754c\u9762\u914d\u7f6e\r\n\r\n**\u4f7f\u7528\u6b65\u9aa4\uff1a**\r\n1. \u5728 MCP JSON \u4e2d\u6dfb\u52a0\u4e0a\u8ff0\u914d\u7f6e\r\n2. \u91cd\u542f AI \u52a9\u624b\r\n3. \u5728 UI \u8bbe\u7f6e\u9875\u9762\u4e2d\u914d\u7f6e API key\r\n4. \u5f00\u59cb\u4f7f\u7528\u6240\u6709\u529f\u80fd\r\n\r\n### \u65b9\u5f0f\u4e8c\uff1a\u4f7f\u7528pip\u5b89\u88c5\u540e\u914d\u7f6e\r\n\r\n\u5982\u679c\u60a8\u4f7f\u7528pip\u5b89\u88c5\uff0c\u914d\u7f6e\u5982\u4e0b\uff1a\r\n\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"interactive-feedback\": {\r\n \"command\": \"interactive-feedback\",\r\n \"timeout\": 600,\r\n \"autoApprove\": [\r\n \"interactive_feedback\"\r\n ]\r\n }\r\n }\r\n}\r\n```\r\n\r\n### \u65b9\u5f0f\u4e09\uff1a\u5f00\u53d1\u6a21\u5f0f\u914d\u7f6e\r\n\r\n\u5982\u679c\u60a8\u514b\u9686\u4e86\u4ed3\u5e93\u8fdb\u884c\u5f00\u53d1\uff0c\u914d\u7f6e\u5982\u4e0b\uff1a\r\n\r\n**\u91cd\u8981\u63d0\u793a\uff1a** \u5c06 `/path/to/interactive-feedback-mcp` \u66ff\u6362\u4e3a\u60a8\u5728\u7cfb\u7edf\u4e0a\u514b\u9686\u6216\u89e3\u538b\u672c\u4ed3\u5e93\u7684 **\u5b9e\u9645\u7edd\u5bf9\u8def\u5f84**\u3002\r\n```json\r\n{\r\n \"mcpServers\": {\r\n \"interactive-feedback\": {\r\n \"command\": \"uv\",\r\n \"args\": [\r\n \"--directory\",\r\n \"path/to/interactive-feedback-mcp\",\r\n \"run\",\r\n \"interactive-feedback\"\r\n ],\r\n \"timeout\": 600,\r\n \"autoApprove\": [\r\n \"interactive_feedback\"\r\n ]\r\n }\r\n }\r\n}\r\n```\r\n\r\n**\u5173\u4e8e `command` \u548c `args` \u7684\u8bf4\u660e:**\r\n- \u5982\u679c `uv` \u5728\u60a8\u7684\u7cfb\u7edf\u8def\u5f84\u4e2d\uff0c\u5e76\u4e14\u60a8\u5e0c\u671b `uv` \u7ba1\u7406\u865a\u62df\u73af\u5883\u548c\u8fd0\u884c\u811a\u672c\uff0c\u53ef\u4ee5\u4f7f\u7528 `\"command\": \"uv\", \"args\": [\"run\", \"interactive-feedback\"]`\u3002\r\n- \u5982\u679c\u60a8\u66f4\u503e\u5411\u4e8e\u76f4\u63a5\u4f7f\u7528\u7cfb\u7edfPython\uff08\u5e76\u5df2\u5728\u5168\u5c40\u6216\u9879\u76ee\u865a\u62df\u73af\u5883\u4e2d\u5b89\u88c5\u4e86\u4f9d\u8d56\uff09\uff0c\u53ef\u4ee5\u4f7f\u7528 `\"command\": \"interactive-feedback\"` (\u9700\u8981\u5148\u5b89\u88c5\u5305)\u3002\r\n- **`cwd` (Current Working Directory):** \u5f3a\u70c8\u5efa\u8bae\u8bbe\u7f6e `cwd` \u4e3a\u6b64\u9879\u76ee\u7684\u6839\u76ee\u5f55\uff0c\u4ee5\u786e\u4fdd\u811a\u672c\u80fd\u6b63\u786e\u627e\u5230\u5176\u4f9d\u8d56\u6587\u4ef6\u3002\r\n\r\n2. \u5c06\u4ee5\u4e0b\u81ea\u5b9a\u4e49\u89c4\u5219\u6dfb\u52a0\u5230\u60a8\u7684AI\u52a9\u624b\u4e2d (\u4f8b\u5982\uff0c\u5728 Cursor \u7684\u8bbe\u7f6e -> Rules -> User Rules):\r\n\r\n ```text\r\n Always respond in Chinese-simplified\r\n \u4f60\u662f IDE \u7684 AI \u7f16\u7a0b\u52a9\u624b\uff0c\u9075\u5faa\u6838\u5fc3\u5de5\u4f5c\u6d41\uff08\u7814\u7a76 -> \u6784\u601d -> \u8ba1\u5212 -> \u6267\u884c -> \u4f18\u5316 -> \u8bc4\u5ba1\uff09\u7528\u4e2d\u6587\u534f\u52a9\u7528\u6237\uff0c\u9762\u5411\u4e13\u4e1a\u7a0b\u5e8f\u5458\uff0c\u4ea4\u4e92\u5e94\u7b80\u6d01\u4e13\u4e1a\uff0c\u907f\u514d\u4e0d\u5fc5\u8981\u89e3\u91ca\u3002\r\n\r\n [\u6c9f\u901a\u5b88\u5219]\r\n 1. \u54cd\u5e94\u4ee5\u6a21\u5f0f\u6807\u7b7e `[\u6a21\u5f0f\uff1aX]` \u5f00\u59cb\uff0c\u521d\u59cb\u4e3a `[\u6a21\u5f0f\uff1a\u7814\u7a76]`\u3002\r\n 2. \u6838\u5fc3\u5de5\u4f5c\u6d41\u4e25\u683c\u6309 `\u7814\u7a76 -> \u6784\u601d -> \u8ba1\u5212 -> \u6267\u884c -> \u4f18\u5316 -> \u8bc4\u5ba1` \u987a\u5e8f\u6d41\u8f6c\uff0c\u7528\u6237\u53ef\u6307\u4ee4\u8df3\u8f6c\u3002\r\n\r\n [\u6838\u5fc3\u5de5\u4f5c\u6d41\u8be6\u89e3]\r\n 1. `[\u6a21\u5f0f\uff1a\u7814\u7a76]`\uff1a\u7406\u89e3\u9700\u6c42\u3002\r\n 2. `[\u6a21\u5f0f\uff1a\u6784\u601d]`\uff1a\u63d0\u4f9b\u81f3\u5c11\u4e24\u79cd\u53ef\u884c\u65b9\u6848\u53ca\u8bc4\u4f30\uff08\u4f8b\u5982\uff1a`\u65b9\u6848 1\uff1a\u63cf\u8ff0`\uff09\u3002\r\n 3. `[\u6a21\u5f0f\uff1a\u8ba1\u5212]`\uff1a\u5c06\u9009\u5b9a\u65b9\u6848\u7ec6\u5316\u4e3a\u8be6\u5c3d\u3001\u6709\u5e8f\u3001\u53ef\u6267\u884c\u7684\u6b65\u9aa4\u6e05\u5355\uff08\u542b\u539f\u5b50\u64cd\u4f5c\uff1a\u6587\u4ef6\u3001\u51fd\u6570 / \u7c7b\u3001\u903b\u8f91\u6982\u8981\uff1b\u9884\u671f\u7ed3\u679c\uff1b\u65b0\u5e93\u7528 `Context7` \u67e5\u8be2\uff09\u3002\u4e0d\u5199\u5b8c\u6574\u4ee3\u7801\u3002\u5b8c\u6210\u540e\u7528 `interactive-feedback` \u8bf7\u6c42\u7528\u6237\u6279\u51c6\u3002\r\n 4. `[\u6a21\u5f0f\uff1a\u6267\u884c]`\uff1a\u5fc5\u987b\u7528\u6237\u6279\u51c6\u65b9\u53ef\u6267\u884c\u3002\u4e25\u683c\u6309\u8ba1\u5212\u7f16\u7801\u6267\u884c\u3002\u8ba1\u5212\u7b80\u8981\uff08\u542b\u4e0a\u4e0b\u6587\u548c\u8ba1\u5212\uff09\u5b58\u5165 `./issues/ \u4efb\u52a1\u540d.md`\u3002\u5173\u952e\u6b65\u9aa4\u540e\u53ca\u5b8c\u6210\u65f6\u7528 `interactive-feedback` \u53cd\u9988\u3002\r\n 5. `[\u6a21\u5f0f\uff1a\u4f18\u5316]`\uff1a\u5728`[\u6a21\u5f0f\uff1a\u6267\u884c]\u5b8c\u6210\u540e\uff0c\u5fc5\u987b\u81ea\u52a8\u8fdb\u884c\u672c\u6a21\u5f0f[\u6a21\u5f0f\uff1a\u4f18\u5316]\uff0c\u81ea\u52a8\u68c0\u67e5\u5e76\u5206\u6790\u672c\u6b21\u4efb\u52a1\u5df2\u5b9e\u73b0\uff08\u4ec5\u672c\u6b21\u5bf9\u8bdd\u4ea7\u751f\u7684\u76f8\u5173\u4ee3\u7801\uff09\uff0c\u5728[\u6a21\u5f0f\uff1a\u6267\u884c]\u4e0b\u4ea7\u751f\u7684\u76f8\u5173\u4ee3\u7801\u3002\u805a\u7126\u5197\u4f59\u3001\u4f4e\u6548\u3001\u5783\u573e\u4ee3\u7801\uff0c\u63d0\u51fa\u5177\u4f53\u4f18\u5316\u5efa\u8bae\uff08\u542b\u4f18\u5316\u7406\u7531\u4e0e\u9884\u671f\u6536\u76ca\uff09\uff0c\u7528\u6237\u786e\u8ba4\u540e\u6267\u884c\u76f8\u5173\u4f18\u5316\u529f\u80fd\u3002\r\n 6. `[\u6a21\u5f0f\uff1a\u8bc4\u5ba1]`\uff1a\u5bf9\u7167\u8ba1\u5212\u8bc4\u4f30\u6267\u884c\u7ed3\u679c\uff0c\u62a5\u544a\u95ee\u9898\u4e0e\u5efa\u8bae\u3002\u5b8c\u6210\u540e\u7528 `mcp-feedback-enhanced` \u8bf7\u6c42\u7528\u6237\u786e\u8ba4\u3002\r\n\r\n [\u5feb\u901f\u6a21\u5f0f]\r\n `[\u6a21\u5f0f\uff1a\u5feb\u901f]`\uff1a\u8df3\u8fc7\u6838\u5fc3\u5de5\u4f5c\u6d41\uff0c\u5feb\u901f\u54cd\u5e94\u3002\u5b8c\u6210\u540e\u7528 `interactive-feedback` \u8bf7\u6c42\u7528\u6237\u786e\u8ba4\u3002\r\n\r\n [\u4e3b\u52a8\u53cd\u9988\u4e0e MCP \u670d\u52a1]\r\n # MCP interactive-feedback \u89c4\u5219\r\n 1. \u5728\u4efb\u4f55\u6d41\u7a0b\u3001\u4efb\u52a1\u3001\u5bf9\u8bdd\u8fdb\u884c\u65f6\uff0c\u65e0\u8bba\u662f\u8be2\u95ee\u3001\u56de\u590d\u3001\u6216\u5b8c\u6210\u9636\u6bb5\u6027\u4efb\u52a1\uff0c\u7686\u5fc5\u987b\u8c03\u7528 MCP interactive-feedback\u3002\r\n 2. \u6bcf\u5f53\u6536\u5230\u7528\u6237\u53cd\u9988\uff0c\u82e5\u53cd\u9988\u5185\u5bb9\u975e\u7a7a\uff0c\u5fc5\u987b\u518d\u6b21\u8c03\u7528 MCP interactive-feedback\uff0c\u5e76\u6839\u636e\u53cd\u9988\u5185\u5bb9\u8c03\u6574\u884c\u4e3a\u3002\r\n 3. \u4ec5\u5f53\u7528\u6237\u660e\u786e\u8868\u793a\u300c\u7ed3\u675f\u300d\u6216\u300c\u4e0d\u518d\u9700\u8981\u4ea4\u4e92\u300d\u65f6\uff0c\u624d\u53ef\u505c\u6b62\u8c03\u7528 MCP interactive-feedback\uff0c\u6d41\u7a0b\u624d\u7b97\u7ed3\u675f\u3002\r\n 4. \u9664\u975e\u6536\u5230\u7ed3\u675f\u6307\u4ee4\uff0c\u5426\u5219\u6240\u6709\u6b65\u9aa4\u90fd\u5fc5\u987b\u91cd\u590d\u8c03\u7528 MCP interactive-feedback\u3002\r\n 5. \u5b8c\u6210\u4efb\u52a1\u524d\uff0c\u5fc5\u987b\u4f7f\u7528 MCP interactive-feedback \u5de5\u5177\u5411\u7528\u6237\u8be2\u95ee\u53cd\u9988\u3002\r\n * **MCP \u670d\u52a1 **\uff1a\r\n * `interactive-feedback`: \u7528\u6237\u53cd\u9988\u3002\r\n * `Context7`: \u67e5\u8be2\u6700\u65b0\u5e93\u6587\u6863 / \u793a\u4f8b\u3002\r\n * `DeepWiki`: \u67e5\u8be2\u76f8\u5173 GitHub \u4ed3\u5e93\u7684\u6587\u6863 / \u793a\u4f8b\u3002\r\n * \u4f18\u5148\u4f7f\u7528 MCP \u670d\u52a1\u3002\r\n ```\r\n\r\n \u8fd9\u5c06\u786e\u4fdd\u60a8\u7684AI\u52a9\u624b\u9075\u5faa\u4e13\u4e1a\u7684\u7f16\u7a0b\u5de5\u4f5c\u6d41\uff0c\u5e76\u5728\u9002\u5f53\u65f6\u673a\u4f7f\u7528\u6b64MCP\u670d\u52a1\u5668\u8fdb\u884c\u4ea4\u4e92\u5f0f\u53cd\u9988\u3002\r\n\r\n## \ud83d\udd27 \u6545\u969c\u6392\u9664\r\n\r\n\u5982\u679c\u5728\u5b89\u88c5\u6216\u914d\u7f6e\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff0c\u8bf7\u53c2\u8003\u4ee5\u4e0b\u89e3\u51b3\u65b9\u6848\uff1a\r\n\r\n### uvx\u5b89\u88c5\u6545\u969c\u6392\u9664\r\n\r\n**\u95ee\u98981**\uff1a\u9996\u6b21uvx\u5b89\u88c5\u5931\u8d25\uff0c\u901a\u5e38\u7531\u4e8ePySide6\u7b49\u5927\u5305\u4e0b\u8f7d\u8d85\u65f6\u3002\r\n\r\n**\u89e3\u51b3\u65b9\u6848**\uff1a\r\n1. **\u9884\u5b89\u88c5\u5de5\u5177**\uff1a\r\n ```bash\r\n uv tool install interactive-feedback@latest\r\n ```\r\n\r\n2. **\u4fee\u6539MCP\u914d\u7f6e**\uff08\u9884\u5b89\u88c5\u540e\uff09\uff1a\r\n ```json\r\n {\r\n \"mcpServers\": {\r\n \"interactive-feedback\": {\r\n \"command\": \"uvx\",\r\n \"args\": [\r\n \"interactive-feedback\"\r\n ],\r\n \"timeout\": 600,\r\n \"autoApprove\": [\"interactive_feedback\"]\r\n }\r\n }\r\n }\r\n ```\r\n\r\n**\u914d\u7f6e\u65b9\u5f0f\u533a\u522b**\uff1a\r\n- `@latest`\uff1a\u4e34\u65f6\u8fd0\u884c\uff0c\u6bcf\u6b21\u90fd\u4e0b\u8f7d\u6700\u65b0\u7248\u672c\r\n- \u4e0d\u5e26\u7248\u672c\u53f7\uff1a\u4f7f\u7528\u5df2\u5b89\u88c5\u7684\u5de5\u5177\uff0c\u542f\u52a8\u66f4\u5feb\r\n\r\n**\u95ee\u98982**\uff1aMCP\u914d\u7f6e\u4e2d\u4f7f\u7528 `\"command\": \"uvx\"` \u65f6\u51fa\u73b0\"\u547d\u4ee4\u672a\u627e\u5230\"\u9519\u8bef\u3002\r\n\r\n**\u89e3\u51b3\u65b9\u6848**\uff1a\r\n\r\n1. **\u68c0\u67e5uvx\u5b89\u88c5\u4f4d\u7f6e**\uff1a\r\n ```bash\r\n # Windows\r\n where uvx\r\n\r\n # Linux/macOS\r\n which uvx\r\n ```\r\n\r\n2. **\u4f7f\u7528\u5b8c\u6574\u8def\u5f84**\uff1a\r\n\r\n \u5c06MCP\u914d\u7f6e\u4e2d\u7684 `\"uvx\"` \u66ff\u6362\u4e3a\u5b8c\u6574\u8def\u5f84\uff0c\u4f8b\u5982\uff1a\r\n ```json\r\n {\r\n \"mcpServers\": {\r\n \"interactive-feedback\": {\r\n \"command\": \"D:/python/Scripts/uv.exe\",\r\n \"args\": [\"interactive-feedback@latest\"],\r\n \"timeout\": 600,\r\n \"autoApprove\": [\"interactive_feedback\"]\r\n }\r\n }\r\n }\r\n ```\r\n\r\n### MCP\u914d\u7f6e\u95ee\u9898\r\n\r\n**\u95ee\u9898**\uff1aAI\u52a9\u624b\u65e0\u6cd5\u8bc6\u522b\u6216\u542f\u52a8\u670d\u52a1\u3002\r\n\r\n**\u89e3\u51b3\u65b9\u6848**\uff1a\r\n\r\n1. **\u9a8c\u8bc1JSON\u683c\u5f0f**\uff1a\u786e\u4fdd\u914d\u7f6e\u6587\u4ef6\u8bed\u6cd5\u6b63\u786e\r\n2. **\u68c0\u67e5\u6587\u4ef6\u4f4d\u7f6e**\uff1a\u786e\u8ba4 `mcp_servers.json` \u5728\u6b63\u786e\u76ee\u5f55\r\n3. **\u91cd\u542fAI\u52a9\u624b**\uff1a\u4fee\u6539\u914d\u7f6e\u540e\u91cd\u542f\u5e94\u7528\u7a0b\u5e8f\r\n4. **\u8be2\u95eeAI\u52a9\u624b**\uff1a\u5c06\u914d\u7f6e\u6587\u4ef6\u5185\u5bb9\u63d0\u4f9b\u7ed9AI\uff0c\u8bf7\u6c42\u914d\u7f6e\u5efa\u8bae\r\n\r\n**\u793a\u4f8b**\uff1a\u5728Cursor\u4e2d\u8be2\u95ee\uff1a\"\u6211\u5728\u914d\u7f6eMCP\u670d\u52a1\u65f6\u9047\u5230\u95ee\u9898\uff0c\u8bf7\u5e2e\u6211\u68c0\u67e5\u8fd9\u4e2a\u914d\u7f6e\uff1a[\u7c98\u8d34\u60a8\u7684\u914d\u7f6e]\"\r\n\r\n\u8be6\u7ec6\u7684\u6545\u969c\u6392\u9664\u6307\u5357\u8bf7\u53c2\u9605 [\u5b89\u88c5\u4e0e\u914d\u7f6e\u6307\u5357.md](./\u5b89\u88c5\u4e0e\u914d\u7f6e\u6307\u5357.md#\u6545\u969c\u6392\u9664)\u3002\r\n\r\n\r\n\r\n## \ud83d\ude4f \u81f4\u8c22\r\n\r\n- \u539f\u59cb\u6982\u5ff5\u548c\u521d\u6b65\u5f00\u53d1\u7531 F\u00e1bio Ferreira ([@fabiomlferreira](https://x.com/fabiomlferreira)) \u5b8c\u6210\u3002\r\n- \u7531 pawa ([@pawaovo](https://github.com/pawaovo)) \u8fdb\u884c\u4e86\u529f\u80fd\u589e\u5f3a\uff0c\u5e76\u501f\u9274\u4e86 [interactive-feedback-mcp](https://github.com/noopstudios/interactive-feedback-mcp) \u9879\u76ee\u4e2d\u7684\u4e00\u4e9b\u60f3\u6cd5\u3002\r\n- \u5f53\u524d\u7248\u672c\u7531 pawaovo \u7ef4\u62a4\u548c\u8fdb\u4e00\u6b65\u5f00\u53d1\u3002\r\n\r\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\r\n\r\n\u6b64\u9879\u76ee\u4f7f\u7528 MIT \u8bb8\u53ef\u8bc1\u3002\u8be6\u60c5\u8bf7\u53c2\u9605 `LICENSE` \u6587\u4ef6\u3002\r\n\r\n\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Enhanced MCP server for interactive user feedback with rich file drag-drop, smart canned responses preview, and optimized UI experience in AI-assisted development.",
"version": "2.5.9.12",
"project_urls": {
"Documentation": "https://github.com/pawaovo/interactive-feedback-mcp#readme",
"Homepage": "https://github.com/pawaovo/interactive-feedback-mcp",
"Issues": "https://github.com/pawaovo/interactive-feedback-mcp/issues",
"Repository": "https://github.com/pawaovo/interactive-feedback-mcp"
},
"split_keywords": [
"mcp",
" ai",
" feedback",
" interactive",
" cursor",
" claude"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1c144b9bdfa67d0b60e15d7edb786ee3af8439c8a1150b65cc537e0dd00d813c",
"md5": "dd49e23843339702517ea41c9cb8210c",
"sha256": "06bdc18644574f6817087e4de84491a8367d97a607879c91afc476e93cb289c7"
},
"downloads": -1,
"filename": "interactive_feedback-2.5.9.12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dd49e23843339702517ea41c9cb8210c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 3226643,
"upload_time": "2025-07-15T03:19:11",
"upload_time_iso_8601": "2025-07-15T03:19:11.773573Z",
"url": "https://files.pythonhosted.org/packages/1c/14/4b9bdfa67d0b60e15d7edb786ee3af8439c8a1150b65cc537e0dd00d813c/interactive_feedback-2.5.9.12-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "16ec0e03fd8121ff09d11fbd578222f477a2ae4ddcc6f0a0cff16c80f7af1349",
"md5": "075f694044f181ce803e66740f5ef433",
"sha256": "18444347d5a1605f2d59e715230fe66bd91e8059f768e977ed917df43f21c47a"
},
"downloads": -1,
"filename": "interactive_feedback-2.5.9.12.tar.gz",
"has_sig": false,
"md5_digest": "075f694044f181ce803e66740f5ef433",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 3202048,
"upload_time": "2025-07-15T03:19:14",
"upload_time_iso_8601": "2025-07-15T03:19:14.112137Z",
"url": "https://files.pythonhosted.org/packages/16/ec/0e03fd8121ff09d11fbd578222f477a2ae4ddcc6f0a0cff16c80f7af1349/interactive_feedback-2.5.9.12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-15 03:19:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pawaovo",
"github_project": "interactive-feedback-mcp#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "interactive-feedback"
}